Compare two arrays relatively to their spacing.
This is a relatively robust method to compare two arrays whose amplitude is variable.
Input arrays.
The maximum number of unit in the last place for tolerance (see Notes). Default is 1.
If the spacing between x and y for one or more elements is larger than nulp.
See also
assert_array_max_ulpCheck that all items of arrays differ in at most N Units in the Last Place.
spacingReturn the distance between x and the nearest adjacent number.
An assertion is raised if the following condition is not met:
abs(x - y) <= nulp * spacing(maximum(abs(x), abs(y)))
>>> x = np.array([1., 1e-10, 1e-20]) >>> eps = np.finfo(x.dtype).eps >>> np.testing.assert_array_almost_equal_nulp(x, x*eps/2 + x)
>>> np.testing.assert_array_almost_equal_nulp(x, x*eps + x) Traceback (most recent call last): ... AssertionError: Arrays are not equal to 1 ULP (max is 2)
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.4/reference/generated/numpy.testing.assert_array_almost_equal_nulp.html