numpy.testing.assert_almost_equal#
- testing.assert_almost_equal(actual, desired, decimal=7, err_msg='', verbose=True)[原始碼]#
若兩個項目在期望的精確度內不相等,則引發 AssertionError。
注意
建議使用
assert_allclose
、assert_array_almost_equal_nulp
或assert_array_max_ulp
其中之一,而非此函數,以獲得更一致的浮點數比較。此測試驗證 actual 和 desired 的元素是否滿足
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_nulp
、assert_array_max_ulp
、assert_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])