[Python-checkins] r82390 - python/branches/release31-maint/Lib/test/test_complex.py

mark.dickinson python-checkins at python.org
Wed Jun 30 12:55:51 CEST 2010


Author: mark.dickinson
Date: Wed Jun 30 12:55:51 2010
New Revision: 82390

Log:
Tests for Python 3.1's treatment of negated imaginary literals.

Modified:
   python/branches/release31-maint/Lib/test/test_complex.py

Modified: python/branches/release31-maint/Lib/test/test_complex.py
==============================================================================
--- python/branches/release31-maint/Lib/test/test_complex.py	(original)
+++ python/branches/release31-maint/Lib/test/test_complex.py	Wed Jun 30 12:55:51 2010
@@ -409,6 +409,25 @@
 
     @unittest.skipUnless(float.__getformat__("double").startswith("IEEE"),
                          "test requires IEEE 754 doubles")
+    def test_negated_imaginary_literal(self):
+        z0 = -0j
+        z1 = -7j
+        z2 = -1e1000j
+        # This behaviour is actually incorrect: the real part of a negated
+        # imaginary literal should be -0.0, not 0.0.  It's fixed in Python 3.2.
+        # However, the behaviour is already out in the wild in Python 2.x and
+        # Python <= 3.1.2, and it would be too disruptive to change it in a
+        # bugfix release, so we call it a 'feature' of Python 3.1, and test to
+        # ensure that the behaviour remains consistent across 3.1.x releases.
+        self.assertFloatsAreIdentical(z0.real, 0.0)
+        self.assertFloatsAreIdentical(z0.imag, -0.0)
+        self.assertFloatsAreIdentical(z1.real, 0.0)
+        self.assertFloatsAreIdentical(z1.imag, -7.0)
+        self.assertFloatsAreIdentical(z2.real, 0.0)
+        self.assertFloatsAreIdentical(z2.imag, -INF)
+
+    @unittest.skipUnless(float.__getformat__("double").startswith("IEEE"),
+                         "test requires IEEE 754 doubles")
     def test_overflow(self):
         self.assertEqual(complex("1e500"), complex(INF, 0.0))
         self.assertEqual(complex("-1e500j"), complex(0.0, -INF))


More information about the Python-checkins mailing list