]> granicus.if.org Git - python/commitdiff
the usual (part II)
authorJeremy Hylton <jeremy@alum.mit.edu>
Mon, 16 Oct 2000 17:42:40 +0000 (17:42 +0000)
committerJeremy Hylton <jeremy@alum.mit.edu>
Mon, 16 Oct 2000 17:42:40 +0000 (17:42 +0000)
Lib/dos-8x3/test_mat.py

index 1452035bc5e0caa97094409d19e4c1f1de357065..b7fde0ab0a34cfdd1315c62c2dfae30527d33f4e 100644 (file)
@@ -153,33 +153,43 @@ print 'tanh'
 testit('tanh(0)', math.tanh(0), 0)
 testit('tanh(1)+tanh(-1)', math.tanh(1)+math.tanh(-1), 0)
 
-print 'exceptions'  # oooooh, *this* is a x-platform gamble!  good luck
-
-try:
-    x = math.exp(-1000000000)
-except:
-    # mathmodule.c is failing to weed out underflows from libm, or
-    # we've got an fp format with huge dynamic range
-    raise TestFailed("underflowing exp() should not have rasied an exception")
-if x != 0:
-    raise TestFailed("underflowing exp() should have returned 0")
-
-# If this fails, probably using a strict IEEE-754 conforming libm, and x
-# is +Inf afterwards.  But Python wants overflows detected by default.
-try:
-    x = math.exp(1000000000)
-except OverflowError:
-    pass
-else:
-    raise TestFailed("overflowing exp() didn't trigger OverflowError")
-
-# If this fails, it could be a puzzle.  One odd possibility is that
-# mathmodule.c's CHECK() macro is getting confused while comparing
-# Inf (HUGE_VAL) to a NaN, and artificially setting errno to ERANGE
-# as a result (and so raising OverflowError instead).
-try:
-    x = math.sqrt(-1.0)
-except ValueError:
-    pass
-else:
-    raise TestFailed("sqrt(-1) didn't raise ValueError")
+# RED_FLAG 16-Oct-2000 Tim
+# While 2.0 is more consistent about exceptions than previous releases, it
+# still fails this part of the test on some platforms.  For now, we only
+# *run* test_exceptions() in verbose mode, so that this isn't normally
+# tested.
+
+def test_exceptions():
+    print 'exceptions'
+    try:
+        x = math.exp(-1000000000)
+    except:
+        # mathmodule.c is failing to weed out underflows from libm, or
+        # we've got an fp format with huge dynamic range
+        raise TestFailed("underflowing exp() should not have raised "
+                         "an exception")
+    if x != 0:
+        raise TestFailed("underflowing exp() should have returned 0")
+
+    # If this fails, probably using a strict IEEE-754 conforming libm, and x
+    # is +Inf afterwards.  But Python wants overflows detected by default.
+    try:
+        x = math.exp(1000000000)
+    except OverflowError:
+        pass
+    else:
+        raise TestFailed("overflowing exp() didn't trigger OverflowError")
+
+    # If this fails, it could be a puzzle.  One odd possibility is that
+    # mathmodule.c's CHECK() macro is getting confused while comparing
+    # Inf (HUGE_VAL) to a NaN, and artificially setting errno to ERANGE
+    # as a result (and so raising OverflowError instead).
+    try:
+        x = math.sqrt(-1.0)
+    except ValueError:
+        pass
+    else:
+        raise TestFailed("sqrt(-1) didn't raise ValueError")
+
+if verbose:
+    test_exceptions()