--- a/RegressionTests__IntegerTest.st Wed Jan 27 19:23:09 2016 +0100
+++ b/RegressionTests__IntegerTest.st Mon Feb 01 15:26:32 2016 +0100
@@ -1247,6 +1247,8 @@
self assert:(2 factorial = 2).
self assert:(10 factorial = 3628800).
self assert:(11 factorial = 39916800).
+ self assert:(20 factorial = 2432902008176640000).
+ self assert:(50 factorial = 30414093201713378043612608166064768844377641568960512000000000000).
"
self basicNew testFactorial
@@ -1263,6 +1265,8 @@
self assert:(6 gcd:9) = 3.
self assert:(2 gcd:0) = 2.
self assert:(0 gcd:2) = 2.
+ self assert:(20 factorial gcd:(5*6*7)) = (5*6*7).
+ self assert:(20 factorial gcd:(20 factorial / 20)) = (19 factorial).
"
self basicNew testGCD
@@ -1746,6 +1750,8 @@
self assert:(2 isPowerOfTwo).
self assert:(4 isPowerOfTwo).
self assert:(3 isPowerOfTwo not).
+ self assert:(16r100000000000000000000000 isPowerOfTwo).
+ self assert:(16r300000000000000000000000 isPowerOfTwo not).
"
self basicNew testIsPowerOfTwo
@@ -1992,6 +1998,92 @@
"Modified: / 4.6.1999 / 15:26:55 / cg"
!
+testLargeCompare
+ "compare tests"
+
+ #(
+ ( 16r3fffffff 16r40000000 #less )
+ ( 16r40000000 16r3fffffff #greater )
+ ( 16r40000000 16r40000000 #equal )
+
+ ( 16r40000000 16r40000001 #less )
+ ( 16r40000001 16r40000000 #greater )
+ ( 16r40000001 16r40000001 #equal )
+
+ ( 16r3fffffffffffffff 16r4000000000000000 #less )
+ ( 16r4000000000000000 16r3fffffffffffffff #greater )
+ ( 16r4000000000000000 16r4000000000000000 #equal )
+
+ ( 16r4000000000000000 16r4000000000000001 #less )
+ ( 16r4000000000000001 16r4000000000000000 #greater )
+ ( 16r4000000000000001 16r4000000000000001 #equal )
+
+ ( 16r3fffffffffffffffffffffff 16r400000000000000000000000 #less )
+ ( 16r400000000000000000000000 16r3fffffffffffffffffffffff #greater )
+ ( 16r400000000000000000000000 16r400000000000000000000000 #equal )
+
+ ( 16r400000000000000000000000 16r400000000000000000000001 #less )
+ ( 16r400000000000000000000001 16r400000000000000000000000 #greater )
+ ( 16r400000000000000000000001 16r400000000000000000000001 #equal )
+
+ ( 16r3fffffff 16r400000000000 #less )
+ ( 16r400000000000 16r3fffffff #greater )
+
+ ( 16r40000000 16r400000000001 #less )
+ ( 16r400000000001 16r40000000 #greater )
+
+ ( 16r3fffffffffffffff 16r40000000000000000000 #less )
+ ( 16r40000000000000000000 16r3fffffffffffffff #greater )
+
+ ( 16r4000000000000000 16r40000000000000000001 #less )
+ ( 16r40000000000000000001 16r4000000000000000 #greater )
+
+ ( 16r3fffffffffffffffffffffff 16r400000000000000000000000 #less )
+ ( 16r400000000000000000000000 16r3fffffffffffffffffffffff #greater )
+ ( 16r400000000000000000000000 16r400000000000000000000000 #equal )
+
+ ( 16r400000000000000000000000 16r400000000000000000000001 #less )
+ ( 16r400000000000000000000001 16r400000000000000000000000 #greater )
+ ( 16r400000000000000000000001 16r400000000000000000000001 #equal )
+ ) do:[:triple |
+ |v1 v2 expected rslt|
+
+ v1 := triple at:1.
+ v2 := triple at:2.
+ expected := triple at:3.
+ expected == #less ifTrue:[
+ self assert:(v1 < v2).
+ self assert:(v1 <= v2).
+ self assert:(v1 > v2) not.
+ self assert:(v1 >= v2) not.
+ self assert:(v1 = v2) not.
+ self assert:(v1 ~= v2).
+ ].
+ expected == #greater ifTrue:[
+ self assert:(v1 > v2).
+ self assert:(v1 >= v2).
+ self assert:(v1 < v2) not.
+ self assert:(v1 <= v2) not.
+ self assert:(v1 = v2) not.
+ self assert:(v1 ~= v2).
+ ].
+ expected == #equal ifTrue:[
+ self assert:(v1 > v2) not.
+ self assert:(v1 >= v2).
+ self assert:(v1 < v2) not.
+ self assert:(v1 <= v2).
+ self assert:(v1 = v2).
+ self assert:(v1 ~= v2) not.
+ ].
+ ].
+ self assert:(100 factorial < 101 factorial).
+ self assert:(100 factorial > 100 factorial negated).
+
+ "
+ self basicNew testLargeCompare
+ "
+!
+
testLargeCompression1
|l nullBytes|