Gleitkomma-Gleichheit testen
Gibt es eine Funktion zum Testen der Gleitkomma-Gleichheit in Python? Etwas wie
def approx_equal(a, b, tol):
return abs(a - b) < tol
Mein Anwendungsfall ähnelt der Definition von @ in der C ++ - Testbibliothek von Google, gtest.EXPECT_NEAR
.
Hier ist ein Beispiel
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))