assert_array_almost_equal_nulp(x, y, nulp=1)¶
Compare two arrays relatively to their spacing.
This is a relatively robust method to compare two arrays whose amplitude is variable.
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.
Check that all items of arrays differ in at most N Units in the Last Place.
Return the distance between x and the nearest adjacent number.
An assertion is raised if the following condition is not met:
abs(x - y) <= nulps * 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: X and Y are not equal to 1 ULP (max is 2)