numpy.testing.assert_equal#
- тестирование.assert_equal(фактический, желаемый, err_msg='', verbose=True, *, strict=False)[источник]#
Вызывает AssertionError, если два объекта не равны.
Для двух объектов (скаляров, списков, кортежей, словарей или массивов numpy) проверяет, что все элементы этих объектов равны. Исключение возникает при первом несовпадающем значении.
Эта функция обрабатывает сравнения NaN так, как если бы NaN был «нормальным» числом. То есть AssertionError не возникает, если оба объекта имеют NaN в одинаковых позициях. Это противоречит стандарту IEEE для NaN, который гласит, что сравнение NaN с чем-либо должно возвращать False.
- Параметры:
- фактическийarray_like
Объект для проверки.
- желаемыйarray_like
Ожидаемый объект.
- err_msgstr, optional
Сообщение об ошибке для вывода в случае неудачи.
- verbosebool, необязательно
Если True, конфликтующие значения добавляются к сообщению об ошибке.
- strictbool, необязательно
Если True и любой из фактический и желаемый аргументы являются массивом, вызвать
AssertionErrorкогда либо форма, либо тип данных аргументов не совпадают. Если ни один аргумент не является массивом, этот параметр не имеет эффекта.Новое в версии 2.0.0.
- Вызывает:
- AssertionError
Если actual и desired не равны.
Смотрите также
Примечания
Когда один из фактический и желаемый является скаляром, а другой — array_like, функция проверяет, что каждый элемент array_like равен скаляру. Обратите внимание, что пустые массивы поэтому считаются равными скалярам. Это поведение можно отключить, установив
strict==True.Примеры
>>> np.testing.assert_equal([4, 5], [4, 6]) Traceback (most recent call last): ... AssertionError: Items are not equal: item=1 ACTUAL: 5 DESIRED: 6
Следующее сравнение не вызывает исключения. Во входных данных есть NaN, но они находятся в одинаковых позициях.
>>> np.testing.assert_equal(np.array([1.0, 2.0, np.nan]), [1, 2, np.nan])
Как упоминалось в разделе «Примечания»,
assert_equalимеет специальную обработку скаляров, когда один из аргументов является массивом. Здесь тест проверяет, что каждое значение в x равно 3:>>> x = np.full((2, 5), fill_value=3) >>> np.testing.assert_equal(x, 3)
Используйте strict вызывать AssertionError при сравнении скаляра с массивом другой формы:
>>> np.testing.assert_equal(x, 3, strict=True) Traceback (most recent call last): ... AssertionError: Arrays are not equal (shapes (2, 5), () mismatch) ACTUAL: array([[3, 3, 3, 3, 3], [3, 3, 3, 3, 3]]) DESIRED: array(3)
The strict параметр также гарантирует, что типы данных массива совпадают:
>>> x = np.array([2, 2, 2]) >>> y = np.array([2., 2., 2.], dtype=np.float32) >>> np.testing.assert_equal(x, y, strict=True) Traceback (most recent call last): ... AssertionError: Arrays are not equal (dtypes int64, float32 mismatch) ACTUAL: array([2, 2, 2]) DESIRED: array([2., 2., 2.], dtype=float32)