numpy.testing.assert_array_almost_equal_nulp#

testing.assert_array_almost_equal_nulp(x, y, nulp=1)[源代码]#

比较两个数组,相对于它们的间距.

这是一种比较稳健的方法,可以比较幅度可变的两个数组.

参数:
x, yarray_like

输入数组.

nulpint, optional

用于容差的最后一位允许的最大单位数(参见注释).默认为 1.

返回:
None
Raises:
AssertionError

如果 xy 之间的一个或多个元素的间距大于 nulp .

参见

assert_array_max_ulp

检查数组的所有项目最多相差 N 个最低有效位上的单位.

spacing

返回 x 与最近的相邻数字之间的距离.

注释

如果不满足以下条件,则会引发断言:

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)