python – 测试浮点平等

有没有函数测试浮点近似相等在python?就像是,

 def approx_equal(a, b, tol):
     return abs(a - b) < tol

我的用例类似于谷歌的C测试库,gtest.h,定义EXPECT_NEAR。

这里是一个例子:

def bernoulli_fraction_to_angle(fraction):
    return math.asin(sqrt(fraction))
def bernoulli_angle_to_fraction(angle):
    return math.sin(angle) ** 2
def test_bernoulli_conversions():
    assert(approx_equal(bernoulli_angle_to_fraction(pi / 4), 0.5, 1e-4))
    assert(approx_equal(
              bernoulli_fraction_to_angle(bernoulli_angle_to_fraction(0.1)),
                0.1, 1e-4))
>为了测试数字,有nose.tools.assert_almost_equal和等价的unittest.assertAlmostEqual
>对于测试数字或数组,有numpy.testing.assert_allclose
>为了比较数字,自从Python 3.5以来,有数学。
>为了比较数字或数组,有numpy.allclose。
http://stackoverflow.com/questions/4028889/testing-floating-point-equality

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:python – 测试浮点平等