From baa8ba6e36fcf22a1765b405ea0c3048fbaaf4c2 Mon Sep 17 00:00:00 2001 From: Mark Dickinson Date: Wed, 22 Apr 2009 17:50:21 +0000 Subject: Issue #5812: Make Fraction('1e6') valid. The Fraction constructor now accepts all strings accepted by the float and Decimal constructors, with the exception of strings representing NaNs or infinities. --- Lib/test/test_fractions.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'Lib/test/test_fractions.py') diff --git a/Lib/test/test_fractions.py b/Lib/test/test_fractions.py index 91fcd26d5c..448e32da53 100644 --- a/Lib/test/test_fractions.py +++ b/Lib/test/test_fractions.py @@ -78,6 +78,11 @@ class FractionTest(unittest.TestCase): self.assertEquals((-16, 5), _components(F(" -3.2 "))) self.assertEquals((-3, 1), _components(F(" -3. "))) self.assertEquals((3, 5), _components(F(" .6 "))) + self.assertEquals((1, 3125), _components(F("32.e-5"))) + self.assertEquals((1000000, 1), _components(F("1E+06"))) + self.assertEquals((-12300, 1), _components(F("-1.23e4"))) + self.assertEquals((0, 1), _components(F(" .0e+0\t"))) + self.assertEquals((0, 1), _components(F("-0.000e0"))) self.assertRaisesMessage( ZeroDivisionError, "Fraction(3, 0)", @@ -85,6 +90,9 @@ class FractionTest(unittest.TestCase): self.assertRaisesMessage( ValueError, "Invalid literal for Fraction: '3/'", F, "3/") + self.assertRaisesMessage( + ValueError, "Invalid literal for Fraction: '/2'", + F, "/2") self.assertRaisesMessage( ValueError, "Invalid literal for Fraction: '3 /2'", F, "3 /2") @@ -100,10 +108,6 @@ class FractionTest(unittest.TestCase): # Avoid treating '.' as a regex special character. ValueError, "Invalid literal for Fraction: '3a2'", F, "3a2") - self.assertRaisesMessage( - # Only parse ordinary decimals, not scientific form. - ValueError, "Invalid literal for Fraction: '3.2e4'", - F, "3.2e4") self.assertRaisesMessage( # Don't accept combinations of decimals and rationals. ValueError, "Invalid literal for Fraction: '3/7.2'", -- cgit v1.2.1