Is there a function to test floating point approximate equality in python? Something like,
def approx_equal(a, b, tol):
return abs(a - b) < tol
My use case is similar to how Google's C++ testing library, gtest.h, defines EXPECT_NEAR.
Here is an example:
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))
tolis likely only approximately equal to the value you want.spacing()function will tell you the distance between a given floating point number and the nearest floating point number, which might be a way to make a good test.spacingfunction is at github.com/numpy/numpy/blob/master/numpy/core/code_generators/… (it doesn't show up in normal Google searches).