--- a/RegressionTests__LargeFloatTest.st Wed Jun 29 13:00:17 2016 +0000
+++ b/RegressionTests__LargeFloatTest.st Wed Jun 29 15:55:29 2016 +0200
@@ -1,4 +1,4 @@
-"{ Package: 'exept:regression' }"
+"{ Package: 'stx:goodies/regression' }"
"{ NameSpace: RegressionTests }"
@@ -20,19 +20,19 @@
one := aFloatClass unity. "/ 1.0 in this class
half := one coerce:0.5.
- x := one.
+ x := one.
count := 0.
[ one + x ~= one] whileTrue:[
- x := x * half.
- count := count + 1.
+ x := x * half.
+ count := count + 1.
].
^ count
"
- self basicNew actualPrecisionOf:ShortFloat
- self basicNew actualPrecisionOf:Float
- self basicNew actualPrecisionOf:LongFloat
+ self basicNew actualPrecisionOf:ShortFloat
+ self basicNew actualPrecisionOf:Float
+ self basicNew actualPrecisionOf:LongFloat
"
! !
@@ -89,46 +89,46 @@
|check posInf negInf|
- check :=
- [:v1 :v2 |
+ check :=
+ [:v1 :v2 |
- posInf := v1 uncheckedDivide: v2.
+ posInf := v1 uncheckedDivide: v2.
- self assert:( posInf 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:( posInf 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 ).
- negInf := v1 negated uncheckedDivide: v2.
+ negInf := v1 negated uncheckedDivide: v2.
- self assert:( negInf isMemberOf:v1 class ).
- 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 isMemberOf:v1 class ).
+ 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:( posInf + negInf) isNaN.
+ self assert:( negInf + negInf = negInf).
+ self assert:( posInf + posInf = posInf).
+ self assert:( negInf + posInf) isNaN.
+ self assert:( posInf + negInf) isNaN.
- self assert:( negInf - posInf = negInf).
- self assert:( negInf - negInf) isNaN.
- self assert:( posInf - negInf = posInf).
- self assert:( posInf - posInf) isNaN.
+ self assert:( negInf - posInf = negInf).
+ self assert:( negInf - negInf) isNaN.
+ self assert:( posInf - negInf = posInf).
+ self assert:( 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.
+ ].
check value: 1.0 asLargeFloat value: 0.0 asLargeFloat.
@@ -263,20 +263,20 @@
"/ arcCos 0.5
"/ arcTan 0.5
- sinh 0.5
- cosh 0.5
- tanh 0.5
- arcSinh 0.5
- arcCosh 1.5
- arcTanh 0.5
+ sinh 0.5
+ cosh 0.5
+ tanh 0.5
+ arcSinh 0.5
+ arcCosh 1.5
+ arcTanh 0.5
) pairWiseDo:[:op :arg |
"/ self assert:( arg asLargeFloat perform:op ) class == LargeFloat.
- ( arg asLargeFloat perform:op ) class == LargeFloat ifFalse:[
- Transcript showCR:'warning: missing LargeFloat function: ' , op.
- ].
+ ( arg asLargeFloat perform:op ) class == LargeFloat ifFalse:[
+ Transcript showCR:'warning: missing LargeFloat function: ' , op.
+ ].
- self assert:( (arg perform:op) - (arg asLargeFloat perform:op) ) < 0.000001.
- self assert:( (arg perform:op) - (arg perform:op) asLargeFloat ) < 0.000001.
+ self assert:( (arg perform:op) - (arg asLargeFloat perform:op) ) < 0.000001.
+ self assert:( (arg perform:op) - (arg perform:op) asLargeFloat ) < 0.000001.
].
"
@@ -288,8 +288,8 @@
|check|
check := [:num |
- self assert:( num fractionPart + num truncated ) = num.
- self assert:( num fractionPart + num truncated ) class == num class.
+ self assert:( num fractionPart + num truncated ) = num.
+ self assert:( num fractionPart + num truncated ) class == num class.
].
check value:1.6 asLargeFloat.
@@ -308,69 +308,69 @@
self assert:( 1.6 asLargeFloat floorAsFloat ) class == LargeFloat.
- self assert:( 0.4 asLargeFloat rounded ) class == SmallInteger.
- self assert:( 0.4 asLargeFloat rounded = 0 ).
- self assert:( 0.5 asLargeFloat rounded = 1 ).
- self assert:( 0.6 asLargeFloat rounded = 1 ).
- self assert:( -0.4 asLargeFloat rounded = 0 ).
- self assert:( -0.5 asLargeFloat rounded = -1 ).
- self assert:( -0.6 asLargeFloat rounded = -1 ).
+ self assert:( 0.4 asLargeFloat rounded ) class == SmallInteger.
+ self assert:( 0.4 asLargeFloat rounded = 0 ).
+ self assert:( 0.5 asLargeFloat rounded = 1 ).
+ self assert:( 0.6 asLargeFloat rounded = 1 ).
+ self assert:( -0.4 asLargeFloat rounded = 0 ).
+ self assert:( -0.5 asLargeFloat rounded = -1 ).
+ self assert:( -0.6 asLargeFloat rounded = -1 ).
- self assert:( 0.4 asLargeFloat roundedAsFloat ) class == LargeFloat.
- self assert:( 0.4 asLargeFloat roundedAsFloat = 0.0 ).
- self assert:( 0.5 asLargeFloat roundedAsFloat = 1.0 ).
- self assert:( 0.6 asLargeFloat roundedAsFloat = 1.0 ).
- self assert:( -0.4 asLargeFloat roundedAsFloat = 0 ).
- self assert:( -0.5 asLargeFloat roundedAsFloat = -1.0 ).
- self assert:( -0.6 asLargeFloat roundedAsFloat = -1.0 ).
+ self assert:( 0.4 asLargeFloat roundedAsFloat ) class == LargeFloat.
+ self assert:( 0.4 asLargeFloat roundedAsFloat = 0.0 ).
+ self assert:( 0.5 asLargeFloat roundedAsFloat = 1.0 ).
+ self assert:( 0.6 asLargeFloat roundedAsFloat = 1.0 ).
+ self assert:( -0.4 asLargeFloat roundedAsFloat = 0 ).
+ self assert:( -0.5 asLargeFloat roundedAsFloat = -1.0 ).
+ self assert:( -0.6 asLargeFloat roundedAsFloat = -1.0 ).
- self assert:( 0.4 truncated ) class == SmallInteger.
- self assert:( 0.4 truncated = 0 ).
- self assert:( 0.5 truncated = 0 ).
- self assert:( 0.6 truncated = 0 ).
- self assert:( -0.4 truncated = 0 ).
- self assert:( -0.5 truncated = 0 ).
- self assert:( -0.6 truncated = 0 ).
+ self assert:( 0.4 truncated ) class == SmallInteger.
+ self assert:( 0.4 truncated = 0 ).
+ self assert:( 0.5 truncated = 0 ).
+ self assert:( 0.6 truncated = 0 ).
+ self assert:( -0.4 truncated = 0 ).
+ self assert:( -0.5 truncated = 0 ).
+ self assert:( -0.6 truncated = 0 ).
- self assert:( 0.4 truncatedAsFloat ) class == Float.
- self assert:( 0.4 truncatedAsFloat = 0.0 ).
- self assert:( 0.5 truncatedAsFloat = 0.0 ).
- self assert:( 0.6 truncatedAsFloat = 0.0 ).
- self assert:( -0.4 truncatedAsFloat = 0 ).
- self assert:( -0.5 truncatedAsFloat = 0.0 ).
- self assert:( -0.6 truncatedAsFloat = 0.0 ).
+ self assert:( 0.4 truncatedAsFloat ) class == Float.
+ self assert:( 0.4 truncatedAsFloat = 0.0 ).
+ self assert:( 0.5 truncatedAsFloat = 0.0 ).
+ self assert:( 0.6 truncatedAsFloat = 0.0 ).
+ self assert:( -0.4 truncatedAsFloat = 0 ).
+ self assert:( -0.5 truncatedAsFloat = 0.0 ).
+ self assert:( -0.6 truncatedAsFloat = 0.0 ).
- self assert:( 0.4 asShortFloat truncated ) class == SmallInteger.
- self assert:( 0.4 asShortFloat truncated = 0 ).
- self assert:( 0.5 asShortFloat truncated = 0 ).
- self assert:( 0.6 asShortFloat truncated = 0 ).
- self assert:( -0.4 asShortFloat truncated = 0 ).
- self assert:( -0.5 asShortFloat truncated = 0 ).
- self assert:( -0.6 asShortFloat truncated = 0 ).
+ self assert:( 0.4 asShortFloat truncated ) class == SmallInteger.
+ self assert:( 0.4 asShortFloat truncated = 0 ).
+ self assert:( 0.5 asShortFloat truncated = 0 ).
+ self assert:( 0.6 asShortFloat truncated = 0 ).
+ self assert:( -0.4 asShortFloat truncated = 0 ).
+ self assert:( -0.5 asShortFloat truncated = 0 ).
+ self assert:( -0.6 asShortFloat truncated = 0 ).
- self assert:( 0.4 asShortFloat truncatedAsFloat ) class == ShortFloat.
- self assert:( 0.4 asShortFloat truncatedAsFloat = 0.0 ).
- self assert:( 0.5 asShortFloat truncatedAsFloat = 0.0 ).
- self assert:( 0.6 asShortFloat truncatedAsFloat = 0.0 ).
- self assert:( -0.4 asShortFloat truncatedAsFloat = 0 ).
- self assert:( -0.5 asShortFloat truncatedAsFloat = 0.0 ).
- self assert:( -0.6 asShortFloat truncatedAsFloat = 0.0 ).
+ self assert:( 0.4 asShortFloat truncatedAsFloat ) class == ShortFloat.
+ self assert:( 0.4 asShortFloat truncatedAsFloat = 0.0 ).
+ self assert:( 0.5 asShortFloat truncatedAsFloat = 0.0 ).
+ self assert:( 0.6 asShortFloat truncatedAsFloat = 0.0 ).
+ self assert:( -0.4 asShortFloat truncatedAsFloat = 0 ).
+ self assert:( -0.5 asShortFloat truncatedAsFloat = 0.0 ).
+ self assert:( -0.6 asShortFloat truncatedAsFloat = 0.0 ).
- self assert:( 0.4 asLargeFloat truncated ) class == SmallInteger.
- self assert:( 0.4 asLargeFloat truncated = 0 ).
- self assert:( 0.5 asLargeFloat truncated = 0 ).
- self assert:( 0.6 asLargeFloat truncated = 0 ).
- self assert:( -0.4 asLargeFloat truncated = 0 ).
- self assert:( -0.5 asLargeFloat truncated = 0 ).
- self assert:( -0.6 asLargeFloat truncated = 0 ).
+ self assert:( 0.4 asLargeFloat truncated ) class == SmallInteger.
+ self assert:( 0.4 asLargeFloat truncated = 0 ).
+ self assert:( 0.5 asLargeFloat truncated = 0 ).
+ self assert:( 0.6 asLargeFloat truncated = 0 ).
+ self assert:( -0.4 asLargeFloat truncated = 0 ).
+ self assert:( -0.5 asLargeFloat truncated = 0 ).
+ self assert:( -0.6 asLargeFloat truncated = 0 ).
- self assert:( 0.4 asLargeFloat truncatedAsFloat ) class == LargeFloat.
- self assert:( 0.4 asLargeFloat truncatedAsFloat = 0.0 ).
- self assert:( 0.5 asLargeFloat truncatedAsFloat = 0.0 ).
- self assert:( 0.6 asLargeFloat truncatedAsFloat = 0.0 ).
- self assert:( -0.4 asLargeFloat truncatedAsFloat = 0 ).
- self assert:( -0.5 asLargeFloat truncatedAsFloat = 0.0 ).
- self assert:( -0.6 asLargeFloat truncatedAsFloat = 0.0 ).
+ self assert:( 0.4 asLargeFloat truncatedAsFloat ) class == LargeFloat.
+ self assert:( 0.4 asLargeFloat truncatedAsFloat = 0.0 ).
+ self assert:( 0.5 asLargeFloat truncatedAsFloat = 0.0 ).
+ self assert:( 0.6 asLargeFloat truncatedAsFloat = 0.0 ).
+ self assert:( -0.4 asLargeFloat truncatedAsFloat = 0 ).
+ self assert:( -0.5 asLargeFloat truncatedAsFloat = 0.0 ).
+ self assert:( -0.6 asLargeFloat truncatedAsFloat = 0.0 ).
"
self basicNew test07_Truncation
@@ -378,7 +378,7 @@
!
test08_Representation
-"/ self assert:( 0.0 asLargeFloat exponent = 0 ).
+"/ self assert:( 0.0 asLargeFloat exponent = 0 ).
"/ self assert:( 1.0 asLargeFloat exponent = 0 "1" ).
"/ self assert:( 2.0 asLargeFloat exponent = 1 "2" ).
"/ self assert:( 3.0 asLargeFloat exponent = 2 ).
@@ -395,24 +395,24 @@
!
test09_Testing
- self assert:( 0.0 asLargeFloat isZero ).
- self assert:( 1.0 asLargeFloat isZero not ).
+ self assert:( 0.0 asLargeFloat isZero ).
+ self assert:( 1.0 asLargeFloat isZero not ).
- self assert:( 0.0 asLargeFloat negative not ).
- self assert:( 1.0 asLargeFloat negative not ).
- self assert:( -1.0 asLargeFloat negative ).
+ self assert:( 0.0 asLargeFloat negative not ).
+ self assert:( 1.0 asLargeFloat negative not ).
+ self assert:( -1.0 asLargeFloat negative ).
- self assert:( 0.0 asLargeFloat positive ).
- self assert:( 1.0 asLargeFloat positive ).
- self assert:( -1.0 asLargeFloat positive not ).
+ self assert:( 0.0 asLargeFloat positive ).
+ self assert:( 1.0 asLargeFloat positive ).
+ self assert:( -1.0 asLargeFloat positive not ).
- self assert:( 0.0 asLargeFloat strictlyPositive not ).
- self assert:( 1.0 asLargeFloat strictlyPositive ).
- self assert:( -1.0 asLargeFloat strictlyPositive not ).
+ self assert:( 0.0 asLargeFloat strictlyPositive not ).
+ self assert:( 1.0 asLargeFloat strictlyPositive ).
+ self assert:( -1.0 asLargeFloat strictlyPositive not ).
- self assert:( 0.0 asLargeFloat sign == 0 ).
- self assert:( 1.0 asLargeFloat sign == 1 ).
- self assert:( -1.0 asLargeFloat sign == -1 ).
+ self assert:( 0.0 asLargeFloat sign == 0 ).
+ self assert:( 1.0 asLargeFloat sign == 1 ).
+ self assert:( -1.0 asLargeFloat sign == -1 ).
"
self basicNew test09_Testing