numpy.testing.assert_approx_equal

testing.assert_approx_equal(actual, desired, significant=7, err_msg='', verbose=True)[源代码]

如果两个项不等于有效数字,则引发断言错误。

注解

建议使用 assert_allcloseassert_array_almost_equal_nulpassert_array_max_ulp 而不是这个函数来进行更一致的浮点比较。

给定两个数字,检查它们是否大致相等。近似相等被定义为一致的有效位数。

参数
actual标量

要检查的对象。

desired标量

所需的对象。

significant可选的

所需精度,默认值为7。

err_msg可选的STR

出现故障时要打印的错误消息。

verbose可选的布尔

如果为true,则将冲突值追加到错误消息中。

加薪
AssertionError

如果实际值和期望值不等于规定的精度。

参见

assert_allclose

比较两个类似数组的对象,以获得所需的相对和/或绝对精度。

assert_array_almost_equal_nulp, assert_array_max_ulp, assert_equal

实例

>>> np.testing.assert_approx_equal(0.12345677777777e-20, 0.1234567e-20)
>>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345671e-20,
...                                significant=8)
>>> np.testing.assert_approx_equal(0.12345670e-20, 0.12345672e-20,
...                                significant=8)
Traceback (most recent call last):
    ...
AssertionError:
Items are not equal to 8 significant digits:
 ACTUAL: 1.234567e-21
 DESIRED: 1.2345672e-21

引发异常的计算条件是

>>> abs(0.12345670e-20/1e-21 - 0.12345672e-20/1e-21) >= 10**-(8-1)
True