--- a/RegressionTests__MetaNumbersTest.st Wed Jun 29 21:40:53 2016 +0100
+++ b/RegressionTests__MetaNumbersTest.st Thu Jun 30 09:02:08 2016 +0100
@@ -18,68 +18,68 @@
|check|
check := [:nan |
- self assert:( nan isNaN ).
- self assert:( nan isFinite not ).
+ self assert:( nan isNaN ).
+ self assert:( nan isFinite not ).
- nan isLimitedPrecisionReal ifTrue:[
- self assert:( nan asFloat isNaN ).
- self assert:( nan asLargeFloat isNaN ).
- self assert:( nan asShortFloat isNaN ).
- self assert:( nan asLongFloat isNaN ).
- ].
+ nan isLimitedPrecisionReal ifTrue:[
+ self assert:( nan asFloat isNaN ).
+ self assert:( nan asLargeFloat isNaN ).
+ self assert:( nan asShortFloat isNaN ).
+ self assert:( nan asLongFloat isNaN ).
+ ].
- "/ self assert:( nan asFraction isNaN ).
- "/ self assert:( nan asInteger isNaN ).
- self should:[ nan asFraction ] raise:DomainError.
- self should:[ nan asInteger ] raise:DomainError.
+ "/ self assert:( nan asFraction isNaN ).
+ "/ self assert:( nan asInteger isNaN ).
+ self should:[ nan asFraction ] raise:DomainError.
+ self should:[ nan asInteger ] raise:DomainError.
- self assert:( nan + 1 ) isNaN.
- self assert:( nan + 1.0 ) isNaN.
- self assert:( nan + 1.0 asShortFloat ) isNaN.
- self assert:( nan + 1.0 asLongFloat ) isNaN.
- self assert:( nan + 1.0 asLargeFloat ) isNaN.
+ self assert:( nan + 1 ) isNaN.
+ self assert:( nan + 1.0 ) isNaN.
+ self assert:( nan + 1.0 asShortFloat ) isNaN.
+ self assert:( nan + 1.0 asLongFloat ) isNaN.
+ self assert:( nan + 1.0 asLargeFloat ) isNaN.
- self assert:( 1 + nan ) isNaN.
- self assert:( 1.0 + nan ) isNaN.
- self assert:( 1.0 asShortFloat + nan ) isNaN.
- self assert:( 1.0 asLongFloat + nan ) isNaN.
- self assert:( 1.0 asLargeFloat + nan ) isNaN.
+ self assert:( 1 + nan ) isNaN.
+ self assert:( 1.0 + nan ) isNaN.
+ self assert:( 1.0 asShortFloat + nan ) isNaN.
+ self assert:( 1.0 asLongFloat + nan ) isNaN.
+ self assert:( 1.0 asLargeFloat + nan ) isNaN.
- self assert:( nan - 1 ) isNaN.
- self assert:( nan - 1.0 ) isNaN.
- self assert:( nan - 1.0 asShortFloat ) isNaN.
- self assert:( nan - 1.0 asLongFloat ) isNaN.
- self assert:( nan - 1.0 asLargeFloat ) isNaN.
+ self assert:( nan - 1 ) isNaN.
+ self assert:( nan - 1.0 ) isNaN.
+ self assert:( nan - 1.0 asShortFloat ) isNaN.
+ self assert:( nan - 1.0 asLongFloat ) isNaN.
+ self assert:( nan - 1.0 asLargeFloat ) isNaN.
- self assert:( 1 - nan ) isNaN.
- self assert:( 1.0 - nan ) isNaN.
- self assert:( 1.0 asShortFloat - nan ) isNaN.
- self assert:( 1.0 asLongFloat - nan ) isNaN.
- self assert:( 1.0 asLargeFloat - nan ) isNaN.
+ self assert:( 1 - nan ) isNaN.
+ self assert:( 1.0 - nan ) isNaN.
+ self assert:( 1.0 asShortFloat - nan ) isNaN.
+ self assert:( 1.0 asLongFloat - nan ) isNaN.
+ self assert:( 1.0 asLargeFloat - nan ) isNaN.
- self assert:( nan * 1 ) isNaN.
- self assert:( nan * 1.0 ) isNaN.
- self assert:( nan * 1.0 asShortFloat ) isNaN.
- self assert:( nan * 1.0 asLongFloat ) isNaN.
- self assert:( nan * 1.0 asLargeFloat ) isNaN.
+ self assert:( nan * 1 ) isNaN.
+ self assert:( nan * 1.0 ) isNaN.
+ self assert:( nan * 1.0 asShortFloat ) isNaN.
+ self assert:( nan * 1.0 asLongFloat ) isNaN.
+ self assert:( nan * 1.0 asLargeFloat ) isNaN.
- self assert:( 1 * nan ) isNaN.
- self assert:( 1.0 * nan ) isNaN.
- self assert:( 1.0 asShortFloat * nan ) isNaN.
- self assert:( 1.0 asLongFloat * nan ) isNaN.
- self assert:( 1.0 asLargeFloat * nan ) isNaN.
+ self assert:( 1 * nan ) isNaN.
+ self assert:( 1.0 * nan ) isNaN.
+ self assert:( 1.0 asShortFloat * nan ) isNaN.
+ self assert:( 1.0 asLongFloat * nan ) isNaN.
+ self assert:( 1.0 asLargeFloat * nan ) isNaN.
- self assert:( nan / 1 ) isNaN.
- self assert:( nan / 1.0 ) isNaN.
- self assert:( nan / 1.0 asShortFloat ) isNaN.
- self assert:( nan / 1.0 asLongFloat ) isNaN.
- self assert:( nan / 1.0 asLargeFloat ) isNaN.
+ self assert:( nan / 1 ) isNaN.
+ self assert:( nan / 1.0 ) isNaN.
+ self assert:( nan / 1.0 asShortFloat ) isNaN.
+ self assert:( nan / 1.0 asLongFloat ) isNaN.
+ self assert:( nan / 1.0 asLargeFloat ) isNaN.
- self assert:( 1 / nan ) isNaN.
- self assert:( 1.0 / nan ) isNaN.
- self assert:( 1.0 asShortFloat / nan ) isNaN.
- self assert:( 1.0 asLongFloat / nan ) isNaN.
- self assert:( 1.0 asLargeFloat / nan ) isNaN.
+ self assert:( 1 / nan ) isNaN.
+ self assert:( 1.0 / nan ) isNaN.
+ self assert:( 1.0 asShortFloat / nan ) isNaN.
+ self assert:( 1.0 asLongFloat / nan ) isNaN.
+ self assert:( 1.0 asLargeFloat / nan ) isNaN.
].
check value:(0.0 uncheckedDivide: 0.0).
@@ -98,83 +98,83 @@
|check posInf negInf|
- check :=
- [:v1 :v2 |
+ check :=
+ [:v1 :v2 |
- posInf := v1 uncheckedDivide: v2.
- negInf := v1 negated uncheckedDivide: v2.
+ posInf := v1 uncheckedDivide: v2.
+ negInf := v1 negated uncheckedDivide: v2.
- v1 isLimitedPrecisionReal ifTrue:[
- self assert:( posInf isMemberOf:v1 class ).
- self assert:( negInf isMemberOf:v1 class ).
- ].
- self assert:( posInf isNaN not ).
- self assert:( posInf isFinite not ).
- self assert:( posInf isInfinite ).
- self assert:( posInf positive ).
- self assert:( posInf negative not ).
- self assert:( posInf isNegativeInfinity not).
- self assert:( posInf isPositiveInfinity ).
+ v1 isLimitedPrecisionReal ifTrue:[
+ self assert:( posInf isMemberOf:v1 class ).
+ self assert:( negInf isMemberOf:v1 class ).
+ ].
+ self assert:( posInf isNaN not ).
+ self assert:( posInf isFinite not ).
+ self assert:( posInf isInfinite ).
+ self assert:( posInf positive ).
+ self assert:( posInf negative not ).
+ self assert:( posInf isNegativeInfinity not).
+ self assert:( posInf isPositiveInfinity ).
- self assert:( negInf isNaN not ).
- self assert:( negInf isFinite not ).
- self assert:( negInf isInfinite ).
- self assert:( negInf positive not).
- self assert:( negInf negative ).
- self assert:( negInf isNegativeInfinity ).
- self assert:( negInf isPositiveInfinity not ).
+ self assert:( negInf isNaN not ).
+ self assert:( negInf isFinite not ).
+ self assert:( negInf isInfinite ).
+ self assert:( negInf positive not).
+ self assert:( negInf negative ).
+ self assert:( negInf isNegativeInfinity ).
+ self assert:( negInf isPositiveInfinity not ).
- self assert:( negInf + negInf = negInf).
- self assert:( posInf + posInf = posInf).
- "/ self assert:( negInf + posInf) isNaN.
- self assert:( Number undefinedResultSignal ignoreIn:[ negInf + posInf]) isNaN.
- "/ self should:[ negInf + posInf ] raise:Number undefinedResultSignal.
- self assert:( Number undefinedResultSignal ignoreIn:[ posInf + negInf]) isNaN.
+ self assert:( negInf + negInf = negInf).
+ self assert:( posInf + posInf = posInf).
+ "/ self assert:( negInf + posInf) isNaN.
+ self assert:( Number undefinedResultSignal ignoreIn:[ negInf + posInf]) isNaN.
+ "/ self should:[ negInf + posInf ] raise:Number undefinedResultSignal.
+ self assert:( Number undefinedResultSignal ignoreIn:[ posInf + negInf]) isNaN.
- self assert:( negInf - posInf = negInf).
- self assert:( Number undefinedResultSignal ignoreIn:[ negInf - negInf]) isNaN.
- self assert:( posInf - negInf = posInf).
- self assert:( Number undefinedResultSignal ignoreIn:[ posInf - posInf]) isNaN.
+ self assert:( negInf - posInf = negInf).
+ self assert:( Number undefinedResultSignal ignoreIn:[ negInf - negInf]) isNaN.
+ self assert:( posInf - negInf = posInf).
+ self assert:( Number undefinedResultSignal ignoreIn:[ posInf - posInf]) isNaN.
- self assert:( posInf + v1) = posInf.
- self assert:( posInf - v1) = posInf.
- self assert:( negInf + v1) = negInf.
- self assert:( negInf - v1) = negInf.
+ self assert:( posInf + v1) = posInf.
+ self assert:( posInf - v1) = posInf.
+ self assert:( negInf + v1) = negInf.
+ self assert:( negInf - v1) = negInf.
- self assert:( posInf + 1) = posInf.
- self assert:( posInf + 1.0) = posInf.
- self assert:( posInf + 1.0 asShortFloat) = posInf.
- self assert:( posInf + 1.0 asLongFloat) = posInf.
- self assert:( posInf + 1.0 asLargeFloat) = posInf.
- self assert:( posInf + (1/2)) = posInf.
- self assert:( posInf + 100 factorial) = posInf.
+ self assert:( posInf + 1) = posInf.
+ self assert:( posInf + 1.0) = posInf.
+ self assert:( posInf + 1.0 asShortFloat) = posInf.
+ self assert:( posInf + 1.0 asLongFloat) = posInf.
+ self assert:( posInf + 1.0 asLargeFloat) = posInf.
+ self assert:( posInf + (1/2)) = posInf.
+ self assert:( posInf + 100 factorial) = posInf.
- self assert:( negInf + 1) = negInf.
- self assert:( negInf + 1.0) = negInf.
- self assert:( negInf + 1.0 asShortFloat) = negInf.
- self assert:( negInf + 1.0 asLongFloat) = negInf.
- self assert:( negInf + 1.0 asLargeFloat) = negInf.
- self assert:( negInf + (1/2)) = negInf.
- "take care, that the factorial is not poitive infinite when converting"
- self assert:( negInf + 20 factorial asShortFloat) = negInf.
+ self assert:( negInf + 1) = negInf.
+ self assert:( negInf + 1.0) = negInf.
+ self assert:( negInf + 1.0 asShortFloat) = negInf.
+ self assert:( negInf + 1.0 asLongFloat) = negInf.
+ self assert:( negInf + 1.0 asLargeFloat) = negInf.
+ self assert:( negInf + (1/2)) = negInf.
+ "take care, that the factorial is not poitive infinite when converting"
+ self assert:( negInf + 20 factorial asShortFloat) = negInf.
- self assert:( 1 + posInf) = posInf.
- self assert:( 1.0 + posInf) = posInf.
- self assert:( 1.0 asShortFloat + posInf) = posInf.
- self assert:( 1.0 asLongFloat + posInf) = posInf.
- self assert:( 1.0 asLargeFloat + posInf) = posInf.
- self assert:( (1/2) + posInf) = posInf.
- self assert:( 20 factorial + posInf) = posInf.
+ self assert:( 1 + posInf) = posInf.
+ self assert:( 1.0 + posInf) = posInf.
+ self assert:( 1.0 asShortFloat + posInf) = posInf.
+ self assert:( 1.0 asLongFloat + posInf) = posInf.
+ self assert:( 1.0 asLargeFloat + posInf) = posInf.
+ self assert:( (1/2) + posInf) = posInf.
+ self assert:( 20 factorial + posInf) = posInf.
- self assert:( 1 + negInf) = negInf.
- self assert:( 1.0 + negInf) = negInf.
- self assert:( 1.0 asShortFloat + negInf) = negInf.
- self assert:( 1.0 asLongFloat + negInf) = negInf.
- self assert:( 1.0 asLargeFloat + negInf) = negInf.
- self assert:( (1/2) + negInf) = negInf.
- "take care, that the factorial is not poitive infinite when converting"
- self assert:( 20 factorial + negInf) = negInf.
- ].
+ self assert:( 1 + negInf) = negInf.
+ self assert:( 1.0 + negInf) = negInf.
+ self assert:( 1.0 asShortFloat + negInf) = negInf.
+ self assert:( 1.0 asLongFloat + negInf) = negInf.
+ self assert:( 1.0 asLargeFloat + negInf) = negInf.
+ self assert:( (1/2) + negInf) = negInf.
+ "take care, that the factorial is not poitive infinite when converting"
+ self assert:( 20 factorial + negInf) = negInf.
+ ].
check value: 1.0 value: 0.0.
check value: 1.0 asShortFloat value: 0.0 asShortFloat.