--- 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