在 python 中是否有测试浮点近似相等的函数?类似的,
def approx_equal(a, b, tol):
return abs(a - b) < tol
我的用例类似于 Google 的 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))
最佳答案
- 为了比较数字,有
math.isclose
。 - 对于比较数字或数组,有
numpy.allclose
。 - 对于测试数字或数组,有
numpy.testing.assert_allclose
关于python - 测试浮点相等,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028889/