diff options
Diffstat (limited to 'Lib/test/test_fractions.py')
-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))) |