РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
326 of 541 menu

Функция testing.assert_equal

Функция testing.assert_equal (из подмодуля np.testing) сравнивает два объекта и выбрасывает исключение AssertionError, если они не равны. В отличие от встроенного оператора ==, эта функция предназначена специально для тестирования: она предоставляет подробные сообщения об ошибках, включая различия между массивами, и корректно обрабатывает массивы NumPy. Функция поддерживает сравнение массивов разных форм, типов данных и структур, а также учитывает значения NaN. Это одна из ключевых функций для написания юнит-тестов в библиотеках, использующих NumPy.

Синтаксис

np.testing.assert_equal(actual, desired, [err_msg=''], [verbose=True])

Параметры:

  • actual - фактическое значение (результат работы тестируемого кода).
  • desired - ожидаемое значение (эталон).
  • err_msg (необязательный) - дополнительное сообщение об ошибке, которое будет выведено при несовпадении.
  • verbose (необязательный) - если True, выводится подробное сообщение о различиях.

Функция ничего не возвращает в случае успеха. При несовпадении выбрасывает исключение AssertionError.

Пример успешной проверки

Проверим равенство двух массивов:

import numpy as np from numpy.testing import assert_equal actual = np.array([1, 2, 3, 4, 5]) desired = np.array([1, 2, 3, 4, 5]) assert_equal(actual, desired) print("Тест пройден: массивы равны")

Результат выполнения кода:

Тест пройден: массивы равны

Функция не выбрасывает исключение, так как массивы равны.

Пример неудачной проверки

Проверим неравные массивы и посмотрим на сообщение об ошибке:

import numpy as np from numpy.testing import assert_equal actual = np.array([1, 2, 3, 4, 5]) desired = np.array([1, 2, 3, 4, 6]) try: assert_equal(actual, desired) except AssertionError as e: print("Ошибка:", e)

Результат выполнения кода:

Ошибка: Items are not equal: item=4 actual=5 desired=6

Сообщение указывает на позицию (индекс 4), где обнаружено различие.

Пример с пользовательским сообщением

Добавим собственное сообщение об ошибке:

import numpy as np from numpy.testing import assert_equal actual = np.array([1, 2, 3]) desired = np.array([1, 2, 4]) try: assert_equal(actual, desired, err_msg="Массивы должны быть равны") except AssertionError as e: print("Ошибка:", e)

Результат выполнения кода:

Ошибка: Массивы должны быть равны Items are not equal: item=2 actual=3 desired=4

К стандартному сообщению добавлена пользовательская строка.

Пример со скалярными значениями

Функция работает и со скалярами:

import numpy as np from numpy.testing import assert_equal assert_equal(5, 5) print("Скаляры равны") try: assert_equal(5, 6) except AssertionError as e: print("Ошибка при сравнении скаляров:", e)

Результат выполнения кода:

Скаляры равны Ошибка при сравнении скаляров: Items are not equal: actual=5 desired=6

Скаляры сравниваются корректно.

Смотрите также

  • функцию assert_array_equal,
    которая проверяет равенство массивов с учетом формы
  • функцию assert_allclose,
    которая проверяет приближенное равенство с заданной точностью
  • функцию assert_raises,
    которая проверяет, что код выбрасывает определенное исключение
  • функцию assert_array_almost_equal,
    которая проверяет приближенное равенство массивов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить