Issue #1996: float.as_integer_ratio() should return fraction in lowest terms.
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py
index 59a9dcd..2f2634d 100644
--- a/Lib/test/test_builtin.py
+++ b/Lib/test/test_builtin.py
@@ -689,6 +689,14 @@
self.assertRaises(TypeError, float, Foo4(42))
def test_floatasratio(self):
+ for f, ratio in [
+ (0.875, (7, 8)),
+ (-0.875, (-7, 8)),
+ (0.0, (0, 1)),
+ (11.5, (23, 2)),
+ ]:
+ self.assertEqual(f.as_integer_ratio(), ratio)
+
R = rational.Rational
self.assertEqual(R(0, 1),
R(*float(0.0).as_integer_ratio()))