summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_fractions.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_fractions.py')
-rw-r--r--Lib/test/test_fractions.py31
1 files changed, 9 insertions, 22 deletions
diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py
index a79fedd..14dd868 100644
--- a/Lib/test/test_fractions.py
+++ b/Lib/test/test_fractions.py
@@ -188,28 +188,15 @@ class FractionTest(unittest.TestCase):
TypeError, "Cannot convert sNaN to Fraction.",
R.from_decimal, Decimal("snan"))
- def testFromContinuedFraction(self):
- self.assertRaises(TypeError, R.from_continued_fraction, None)
- phi = R.from_continued_fraction([1]*100)
- self.assertEquals(round(phi - (1 + 5 ** 0.5) / 2, 10), 0.0)
-
- minusphi = R.from_continued_fraction([-1]*100)
- self.assertEquals(round(minusphi + (1 + 5 ** 0.5) / 2, 10), 0.0)
-
- self.assertEquals(R.from_continued_fraction([0]), R(0))
- self.assertEquals(R.from_continued_fraction([]), R(0))
-
- def testAsContinuedFraction(self):
- self.assertEqual(R.from_float(math.pi).as_continued_fraction()[:15],
- [3, 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 3, 3])
- self.assertEqual(R.from_float(-math.pi).as_continued_fraction()[:16],
- [-4, 1, 6, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, 3, 3])
- self.assertEqual(R(0).as_continued_fraction(), [0])
-
- def testApproximateFrom(self):
- self.assertEqual(R.from_float(math.pi).approximate(10000), R(355, 113))
- self.assertEqual(R.from_float(-math.pi).approximate(10000), R(-355, 113))
- self.assertEqual(R.from_float(0.0).approximate(10000), R(0))
+ def testLimitDenominator(self):
+ rpi = R('3.1415926535897932')
+ self.assertEqual(rpi.limit_denominator(10000), R(355, 113))
+ self.assertEqual(-rpi.limit_denominator(10000), R(-355, 113))
+ self.assertEqual(rpi.limit_denominator(113), R(355, 113))
+ self.assertEqual(rpi.limit_denominator(112), R(333, 106))
+ self.assertEqual(R(201, 200).limit_denominator(100), R(1))
+ self.assertEqual(R(201, 200).limit_denominator(101), R(102, 101))
+ self.assertEqual(R(0).limit_denominator(10000), R(0))
def testConversions(self):
self.assertTypedEquals(-1, math.trunc(R(-11, 10)))