summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_float.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_float.py')
-rw-r--r--Lib/test/test_float.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index fb47db8..1c74c96 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -81,6 +81,7 @@ class UnknownFormatTestCase(unittest.TestCase):
# on an IEEE platform, all we guarantee is that bit patterns
# representing infinities or NaNs do not raise an exception; all else
# is accident (today).
+# let's also try to guarantee that -0.0 and 0.0 don't get confused.
class IEEEFormatTestCase(unittest.TestCase):
if float.__getformat__("double").startswith("IEEE"):
@@ -99,6 +100,20 @@ class IEEEFormatTestCase(unittest.TestCase):
('<f', LE_FLOAT_NAN)]:
struct.unpack(fmt, data)
+ if float.__getformat__("double").startswith("IEEE"):
+ def test_negative_zero(self):
+ import math
+ def pos_pos():
+ return 0.0, math.atan2(0.0, -1)
+ def pos_neg():
+ return 0.0, math.atan2(-0.0, -1)
+ def neg_pos():
+ return -0.0, math.atan2(0.0, -1)
+ def neg_neg():
+ return -0.0, math.atan2(-0.0, -1)
+ self.assertEquals(pos_pos(), neg_pos())
+ self.assertEquals(pos_neg(), neg_neg())
+
def test_main():
test_support.run_unittest(