diff options
| author | Mark Dickinson <dickinsm@gmail.com> | 2009-04-25 09:47:00 (GMT) |
|---|---|---|
| committer | Mark Dickinson <dickinsm@gmail.com> | 2009-04-25 09:47:00 (GMT) |
| commit | 0a6501bf56f559d9319baecb4e99732bd1b41908 (patch) | |
| tree | 3c96c71c1f1de919e18f6b717216af1876c49b5d /Lib/test/test_complex.py | |
| parent | 5083dc552b4e7026c2f405b37d7691131bc96955 (diff) | |
| download | cpython-0a6501bf56f559d9319baecb4e99732bd1b41908.zip cpython-0a6501bf56f559d9319baecb4e99732bd1b41908.tar.gz cpython-0a6501bf56f559d9319baecb4e99732bd1b41908.tar.bz2 | |
Fix typo in complex parsing code; expand tests.
Diffstat (limited to 'Lib/test/test_complex.py')
| -rw-r--r-- | Lib/test/test_complex.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/Lib/test/test_complex.py b/Lib/test/test_complex.py index 1ff710f..1702452 100644 --- a/Lib/test/test_complex.py +++ b/Lib/test/test_complex.py @@ -432,10 +432,11 @@ class ComplexTest(unittest.TestCase): @unittest.skipUnless(float.__getformat__("double").startswith("IEEE"), "test requires IEEE 754 doubles") def test_repr_roundtrip(self): - # complex(repr(z)) should recover z exactly, even for complex numbers - # involving an infinity, nan, or negative zero - vals = [0.0, 1e-200, 0.0123, 3.1415, 1e50, INF, NAN] + vals = [0.0, 1e-500, 1e-315, 1e-200, 0.0123, 3.1415, 1e50, INF, NAN] vals += [-v for v in vals] + + # complex(repr(z)) should recover z exactly, even for complex + # numbers involving an infinity, nan, or negative zero for x in vals: for y in vals: z = complex(x, y) @@ -443,6 +444,21 @@ class ComplexTest(unittest.TestCase): self.assertFloatsAreIdentical(z.real, roundtrip.real) self.assertFloatsAreIdentical(z.imag, roundtrip.imag) + # if we predefine some constants, then eval(repr(z)) should + # also work, except that it might change the sign of zeros + inf, nan = float('inf'), float('nan') + infj, nanj = complex(0.0, inf), complex(0.0, nan) + for x in vals: + for y in vals: + z = complex(x, y) + roundtrip = eval(repr(z)) + # adding 0.0 has no effect beside changing -0.0 to 0.0 + self.assertFloatsAreIdentical(0.0 + z.real, + 0.0 + roundtrip.real) + self.assertFloatsAreIdentical(0.0 + z.imag, + 0.0 + roundtrip.imag) + + def test_main(): test_support.run_unittest(ComplexTest) |
