Patch #1725 by Mark Dickinson, fixes incorrect conversion of -1e1000
and adds errors for -0x.
diff --git a/Lib/test/test_float.py b/Lib/test/test_float.py
index 11f1690..9d33040 100644
--- a/Lib/test/test_float.py
+++ b/Lib/test/test_float.py
@@ -121,6 +121,13 @@
             self.assertEquals(pos_pos(), neg_pos())
             self.assertEquals(pos_neg(), neg_neg())
 
+    if float.__getformat__("double").startswith("IEEE"):
+        def test_underflow_sign(self):
+            import math
+            # check that -1e-1000 gives -0.0, not 0.0
+            self.assertEquals(math.atan2(-1e-1000, -1), math.atan2(-0.0, -1))
+            self.assertEquals(math.atan2(float('-1e-1000'), -1),
+                              math.atan2(-0.0, -1))
 
 class ReprTestCase(unittest.TestCase):
     def test_repr(self):