大量代码(例如
numpy
、scipy
、sklearn
)进行数学处理,结果是浮点或浮点数组。在 unittest.TestCase
中有一种比较浮点值的方法,称为 assertAlmostEqual
但这并不测试有效数字
检查有效数字很重要,因为:
如何测试浮点值的 N 个有效数字?
我发现最好的方法是使用
numpy.testing.assert_approx_equal
,因为它是专门用来测试有效数字的。
示例代码:
import numpy.testing as npt
actual = 1.23456e-9
expected = 1.234567e-9
npt.assert_approx_equal(actual, expected, significant=7)