原文:https://docs.scipy.org/doc/numpy/reference/generated/numpy.testing.assert_approx_equal.html
校对:(虚位以待)
numpy.testing.
assert_approx_equal
(actual, desired, significant=7, err_msg='', verbose=True)[source]如果两个项不等于有效数字,则引发AssertionError。
注意
建议使用assert_allclose
,assert_array_almost_equal_nulp
或assert_array_max_ulp
之一来代替此函数,以获得更一致的浮点比较。
给定两个数字,检查它们大致相等。大约等于定义为同意的有效数字的数量。
参数: | actual:scalar
所需:标量
significant:int,可选
err_msg:str,可选
verbose:bool,可选
|
---|---|
上升: | 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)
...
<type 'exceptions.AssertionError'>:
Items are not equal to 8 significant digits:
ACTUAL: 1.234567e-021
DESIRED: 1.2345672000000001e-021
引发异常的计算条件为
>>> abs(0.12345670e-20/1e-21 - 0.12345672e-20/1e-21) >= 10**-(8-1)
True