diff options
author | Mark Dickinson <dickinsm@gmail.com> | 2008-02-12 21:31:59 (GMT) |
---|---|---|
committer | Mark Dickinson <dickinsm@gmail.com> | 2008-02-12 21:31:59 (GMT) |
commit | e1b824793a4b10d5119459b47546b122a17c18b4 (patch) | |
tree | de1aaf1ef801c1fe278f5de4920a8a8c4ccbab78 /Lib/test | |
parent | a37430a0cec991f341ca637410371532c8e3720c (diff) | |
download | cpython-e1b824793a4b10d5119459b47546b122a17c18b4.zip cpython-e1b824793a4b10d5119459b47546b122a17c18b4.tar.gz cpython-e1b824793a4b10d5119459b47546b122a17c18b4.tar.bz2 |
Implementation of Fraction.limit_denominator.
Remove Fraction.to_continued_fraction and
Fraction.from_continued_fraction
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_fractions.py | 31 |
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))) |