RegressionTests__FloatTest.st
changeset 199 0a895cfee047
parent 198 1416c2f26d02
child 200 081859450ba4
--- a/RegressionTests__FloatTest.st	Tue Jun 17 14:06:09 2003 +0200
+++ b/RegressionTests__FloatTest.st	Tue Jun 17 15:19:26 2003 +0200
@@ -53,62 +53,86 @@
 test01_Nan
     "NaN in all avaliable formats."
 
-    |shouldBeNaN|
+    |shouldBeFloatNaN shouldBeLongFloatNaN shouldBeShortFloatNaN|
 
-    shouldBeNaN := 0.0 uncheckedDivide: 0.0.
-    self assert:( shouldBeNaN isMemberOf:Float ).
-    self assert:( shouldBeNaN isNaN ).
-    self assert:( shouldBeNaN isFinite not ).
+    shouldBeFloatNaN := 0.0 uncheckedDivide: 0.0.
+    self assert:( shouldBeFloatNaN isMemberOf:Float ).
+    self assert:( shouldBeFloatNaN isNaN ).
+    self assert:( shouldBeFloatNaN isFinite not ).
 
-    shouldBeNaN := 0.0 asShortFloat uncheckedDivide: 0.0 asShortFloat.
-    self assert:( shouldBeNaN isMemberOf:ShortFloat ).
-    self assert:( shouldBeNaN isNaN ).
-    self assert:( shouldBeNaN isFinite not ).
+    shouldBeShortFloatNaN := 0.0 asShortFloat uncheckedDivide: 0.0 asShortFloat.
+    self assert:( shouldBeShortFloatNaN isMemberOf:ShortFloat ).
+    self assert:( shouldBeShortFloatNaN isNaN ).
+    self assert:( shouldBeShortFloatNaN isFinite not ).
 
-    shouldBeNaN := 0.0 asLongFloat uncheckedDivide: 0.0 asLongFloat.
-    self assert:( shouldBeNaN isMemberOf:LongFloat ).
-    self assert:( shouldBeNaN isNaN ).
-    self assert:( shouldBeNaN isFinite not ).
+    shouldBeLongFloatNaN := 0.0 asLongFloat uncheckedDivide: 0.0 asLongFloat.
+    self assert:( shouldBeLongFloatNaN isMemberOf:LongFloat ).
+    self assert:( shouldBeLongFloatNaN isNaN ).
+    self assert:( shouldBeLongFloatNaN isFinite not ).
 
-    shouldBeNaN := 0.0 uncheckedDivide: 0.0.
-    self assert:( shouldBeNaN isNaN ).
-    self assert:( shouldBeNaN asShortFloat isNaN ).
-    self assert:( shouldBeNaN asLongFloat isNaN ).
+    shouldBeFloatNaN := 0.0 uncheckedDivide: 0.0.
+    self assert:( shouldBeFloatNaN asShortFloat isNaN ).
+    self assert:( shouldBeFloatNaN asLongFloat isNaN ).
 
-    shouldBeNaN := 0.0 asShortFloat uncheckedDivide: 0.0.
-    self assert:( shouldBeNaN isNaN ).
-    self assert:( shouldBeNaN asFloat isNaN ).
-    self assert:( shouldBeNaN asLongFloat isNaN ).
+    shouldBeShortFloatNaN := 0.0 asShortFloat uncheckedDivide: 0.0.
+    self assert:( shouldBeShortFloatNaN asFloat isNaN ).
+    self assert:( shouldBeShortFloatNaN asLongFloat isNaN ).
 
-    shouldBeNaN := 0.0 asLongFloat uncheckedDivide: 0.0.
-    self assert:( shouldBeNaN isNaN ).
-    self assert:( shouldBeNaN asShortFloat isNaN ).
-    self assert:( shouldBeNaN asLongFloat isNaN ).
+    shouldBeLongFloatNaN := 0.0 asLongFloat uncheckedDivide: 0.0.
+    self assert:( shouldBeLongFloatNaN asShortFloat isNaN ).
+    self assert:( shouldBeLongFloatNaN asLongFloat isNaN ).
+
+    shouldBeFloatNaN := 0.0 uncheckedDivide: 0.0.
+    self should:[ shouldBeFloatNaN asInteger ] raise:DomainError.
 
-    shouldBeNaN := 0.0 uncheckedDivide: 0.0.
-    self should:[ shouldBeNaN asInteger ] raise:DomainError.
-
-"/ mhmh - the following are not true.
-"/    self should:[ shouldBeNaN + 1 ] raise:DomainError.
-"/    self should:[ shouldBeNaN + 1.0 ] raise:DomainError.
-"/    self should:[ shouldBeNaN + 1.0 asShortFloat ] raise:DomainError.
-"/    self should:[ shouldBeNaN + 1.0 asLongFloat ] raise:DomainError.
+"/ mhmh - the following are not true (they silently return NaNs).
+"/    self should:[ shouldBeFloatNaN + 1 ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN + 1.0 ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN + 1.0 asShortFloat ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN + 1.0 asLongFloat ] raise:DomainError.
 "/
-"/    self should:[ shouldBeNaN - 1 ] raise:DomainError.
-"/    self should:[ shouldBeNaN - 1.0 ] raise:DomainError.
-"/    self should:[ shouldBeNaN - 1.0 asShortFloat ] raise:DomainError.
-"/    self should:[ shouldBeNaN - 1.0 asLongFloat ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN - 1 ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN - 1.0 ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN - 1.0 asShortFloat ] raise:DomainError.
+"/    self should:[ shouldBeFloatNaN - 1.0 asLongFloat ] raise:DomainError.
 
     "/ but these are:
-    self assert:( shouldBeNaN + 1 ) isNaN.
-    self assert:( shouldBeNaN + 1.0 ) isNaN.
-    self assert:( shouldBeNaN + 1.0 asShortFloat ) isNaN.
-    self assert:( shouldBeNaN + 1.0 asLongFloat ) isNaN.
+    self assert:( shouldBeFloatNaN + 1 ) isNaN.
+    self assert:( shouldBeFloatNaN + 1.0 ) isNaN.
+    self assert:( shouldBeFloatNaN + 1.0 asShortFloat ) isNaN.
+    self assert:( shouldBeFloatNaN + 1.0 asLongFloat ) isNaN.
+
+    self assert:( shouldBeFloatNaN - 1 ) isNaN.
+    self assert:( shouldBeFloatNaN - 1.0 ) isNaN.
+    self assert:( shouldBeFloatNaN - 1.0 asShortFloat ) isNaN.
+    self assert:( shouldBeFloatNaN - 1.0 asLongFloat ) isNaN.
+
+
+    shouldBeShortFloatNaN := 0.0 asShortFloat uncheckedDivide: 0.0.
+    self should:[ shouldBeShortFloatNaN asInteger ] raise:DomainError.
 
-    self assert:( shouldBeNaN - 1 ) isNaN.
-    self assert:( shouldBeNaN - 1.0 ) isNaN.
-    self assert:( shouldBeNaN - 1.0 asShortFloat ) isNaN.
-    self assert:( shouldBeNaN - 1.0 asLongFloat ) isNaN.
+    self assert:( shouldBeShortFloatNaN + 1 ) isNaN.
+    self assert:( shouldBeShortFloatNaN + 1.0 ) isNaN.
+    self assert:( shouldBeShortFloatNaN + 1.0 asShortFloat ) isNaN.
+    self assert:( shouldBeShortFloatNaN + 1.0 asLongFloat ) isNaN.
+
+    self assert:( shouldBeShortFloatNaN - 1 ) isNaN.
+    self assert:( shouldBeShortFloatNaN - 1.0 ) isNaN.
+    self assert:( shouldBeShortFloatNaN - 1.0 asShortFloat ) isNaN.
+    self assert:( shouldBeShortFloatNaN - 1.0 asLongFloat ) isNaN.
+
+    shouldBeLongFloatNaN := 0.0 asLongFloat uncheckedDivide: 0.0.
+    self should:[ shouldBeLongFloatNaN asInteger ] raise:DomainError.
+
+    self assert:( shouldBeLongFloatNaN + 1 ) isNaN.
+    self assert:( shouldBeLongFloatNaN + 1.0 ) isNaN.
+    self assert:( shouldBeLongFloatNaN + 1.0 asShortFloat ) isNaN.
+    self assert:( shouldBeLongFloatNaN + 1.0 asLongFloat ) isNaN.
+
+    self assert:( shouldBeLongFloatNaN - 1 ) isNaN.
+    self assert:( shouldBeLongFloatNaN - 1.0 ) isNaN.
+    self assert:( shouldBeLongFloatNaN - 1.0 asShortFloat ) isNaN.
+    self assert:( shouldBeLongFloatNaN - 1.0 asLongFloat ) isNaN.
 
     "
      self basicNew test01_Nan