numpy.testing.assert_array_equal
-
numpy.testing.assert_array_equal(x, y, err_msg='', verbose=True)
[source] -
Raises an AssertionError if two array_like objects are not equal.
Given two array_like objects, check that the shape is equal and all elements of these objects are equal (but see the Notes for the special handling of a scalar). An exception is raised at shape mismatch or conflicting values. In contrast to the standard usage in numpy, NaNs are compared like numbers, no assertion is raised if both objects have NaNs in the same positions.
The usual caution for verifying equality with floating point numbers is advised.
- Parameters
-
-
xarray_like
-
The actual object to check.
-
yarray_like
-
The desired, expected object.
-
err_msgstr, optional
-
The error message to be printed in case of failure.
-
verbosebool, optional
-
If True, the conflicting values are appended to the error message.
-
- Raises
-
- AssertionError
-
If actual and desired objects are not equal.
See also
-
assert_allclose
-
Compare two array_like objects for equality with desired relative and/or absolute precision.
assert_array_almost_equal_nulp
,assert_array_max_ulp
,assert_equal
Notes
When one of
x
andy
is a scalar and the other is array_like, the function checks that each element of the array_like object is equal to the scalar.Examples
The first assert does not raise an exception:
>>> np.testing.assert_array_equal([1.0,2.33333,np.nan], ... [np.exp(0),2.33333, np.nan])
Assert fails with numerical imprecision with floats:
>>> np.testing.assert_array_equal([1.0,np.pi,np.nan], ... [1, np.sqrt(np.pi)**2, np.nan]) Traceback (most recent call last): ... AssertionError: Arrays are not equal Mismatched elements: 1 / 3 (33.3%) Max absolute difference: 4.4408921e-16 Max relative difference: 1.41357986e-16 x: array([1. , 3.141593, nan]) y: array([1. , 3.141593, nan])
Use
assert_allclose
or one of the nulp (number of floating point values) functions for these cases instead:>>> np.testing.assert_allclose([1.0,np.pi,np.nan], ... [1, np.sqrt(np.pi)**2, np.nan], ... rtol=1e-10, atol=0)
As mentioned in the Notes section,
assert_array_equal
has special handling for scalars. Here the test checks that each value inx
is 3:>>> x = np.full((2, 5), fill_value=3) >>> np.testing.assert_array_equal(x, 3)
© 2005–2020 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.19/reference/generated/numpy.testing.assert_array_equal.html