[Python-checkins] CVS: python/dist/src/Lib/dos-8x3 test_mat.py,1.5,1.6

Jeremy Hylton python-dev@python.org
Mon, 16 Oct 2000 10:42:44 -0700


Update of /cvsroot/python/python/dist/src/Lib/dos-8x3
In directory slayer.i.sourceforge.net:/tmp/cvs-serv26217

Modified Files:
	test_mat.py 
Log Message:
the usual (part II)


Index: test_mat.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/dos-8x3/test_mat.py,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** test_mat.py	2000/10/16 17:33:50	1.5
--- test_mat.py	2000/10/16 17:42:40	1.6
***************
*** 154,185 ****
  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")
--- 154,195 ----
  testit('tanh(1)+tanh(-1)', math.tanh(1)+math.tanh(-1), 0)
  
! # 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()