numpy.testing.assert_almost_equal#

testing.assert_almost_equal(actual, desired, decimal=7, err_msg='', verbose=True)[原始碼]#

若兩個項目在期望的精確度內不相等,則引發 AssertionError。

注意

建議使用 assert_allcloseassert_array_almost_equal_nulpassert_array_max_ulp 其中之一,而非此函數,以獲得更一致的浮點數比較。

此測試驗證 actualdesired 的元素是否滿足

abs(desired-actual) < float64(1.5 * 10**(-decimal))

這是一個比原始文件寬鬆的測試,但與 assert_array_almost_equal 中實際實現的方式一致,直到捨入的差異。在值衝突時會引發例外。對於 ndarray,這會委派給 assert_array_almost_equal

參數:
actualarray_like

要檢查的物件。

desiredarray_like

期望的物件。

decimalint,選用

期望的精確度,預設值為 7。

err_msgstr,選用

在失敗時要印出的錯誤訊息。

verbosebool,選用

若為 True,則衝突的值會附加到錯誤訊息中。

引發:
AssertionError

若 actual 和 desired 在指定的精確度內不相等。

參見

assert_allclose

比較兩個 array_like 物件在期望的相對和/或絕對精確度下是否相等。

assert_array_almost_equal_nulpassert_array_max_ulpassert_equal

範例

>>> from numpy.testing import assert_almost_equal
>>> assert_almost_equal(2.3333333333333, 2.33333334)
>>> assert_almost_equal(2.3333333333333, 2.33333334, decimal=10)
Traceback (most recent call last):
    ...
AssertionError:
Arrays are not almost equal to 10 decimals
 ACTUAL: 2.3333333333333
 DESIRED: 2.33333334
>>> assert_almost_equal(np.array([1.0,2.3333333333333]),
...                     np.array([1.0,2.33333334]), decimal=9)
Traceback (most recent call last):
    ...
AssertionError:
Arrays are not almost equal to 9 decimals

Mismatched elements: 1 / 2 (50%)
Max absolute difference among violations: 6.66669964e-09
Max relative difference among violations: 2.85715698e-09
 ACTUAL: array([1.         , 2.333333333])
 DESIRED: array([1.        , 2.33333334])