--- a/RegressionTests__IntegerTest.st Wed Jul 05 16:33:29 2017 +0200
+++ b/RegressionTests__IntegerTest.st Wed Jul 05 16:54:48 2017 +0200
@@ -2889,6 +2889,26 @@
"
!
+testLargeDivision7
+ self assert:( 90000000000000000000 rem: 40000000000000000000 ) = 10000000000000000000.
+ self assert:( (((90000000000000000000 quo: 40000000000000000000)*40000000000000000000) + ( 90000000000000000000 rem: 40000000000000000000 )) = 90000000000000000000 ).
+
+ self assert:( -90000000000000000000 rem: 40000000000000000000 ) = -10000000000000000000.
+ self assert:( (((-90000000000000000000 quo: 40000000000000000000)*40000000000000000000) + ( -90000000000000000000 rem: 40000000000000000000 )) = -90000000000000000000 ).
+
+ self assert:( 90000000000000000000 rem: -40000000000000000000 ) = 10000000000000000000.
+ self assert:( (((90000000000000000000 quo: -40000000000000000000)*-40000000000000000000) + ( 90000000000000000000 rem: -40000000000000000000 )) = 90000000000000000000 ).
+
+ self assert:( -90000000000000000000 rem: -40000000000000000000 ) = -10000000000000000000.
+ self assert:( (((-90000000000000000000 quo: -40000000000000000000)*-40000000000000000000) + ( -90000000000000000000 rem: -40000000000000000000 )) = -90000000000000000000 ).
+
+ "
+ self basicNew testLargeDivision7
+ "
+
+ "Created: / 05-07-2017 / 16:37:06 / cg"
+!
+
testLargeIntegerHelpers
|t1 t2|
@@ -3894,7 +3914,17 @@
testMiscMath2
self assert:(10000000000000000000000001 isPrime) not.
-
+ self assert:(1000 factorial + 1) isPrime.
+ self assert:(10000 factorial + 1) isPrime.
+ self assert:(100000 factorial + 1) isPrime.
+
+
+ "
+ Time millisecondsToRun:[
+ 1000000 factorial.
+ ].
+ "
+
"
self basicNew testMiscMath2
"
@@ -4442,7 +4472,7 @@
and via constructed performs. The reason is to test both inlined
JIT-compiler code AND the regular methods code."
- |s n1 n2 t|
+ |n1 n2|
n1 := 1000.
@@ -4469,7 +4499,29 @@
self assert:((n1 // n2) printString = '-1').
self assert:((n1 perform:'//' asSymbol with:n2) == -1).
- "/ ... zero
+ self assert:( (9000000000 \\ 4000000000) = (900 \\ 400 * 10000000)).
+ self assert:( (-9000000000 \\ 4000000000) = (-900 \\ 400 * 10000000)).
+ self assert:( (9000000000 \\ -4000000000) = (900 \\ -400 * 10000000)).
+ self assert:( (-9000000000 \\ -4000000000) = (-900 \\ -400 * 10000000)).
+ self assert:( (16000000000 \\ 4000000000) = (1600 \\ 400 * 10000000)).
+ self assert:( (-16000000000 \\ 4000000000) = (-1600 \\ 400 * 10000000)).
+ self assert:( (16000000000 \\ -4000000000) = (1600 \\ -400 * 10000000)).
+ self assert:( (-16000000000 \\ -4000000000) = (-1600 \\ -400 * 10000000)).
+
+ self assert:(( 9000000000 \\ 7 ) == 5).
+ self assert:( (((9000000000 // 7)*7) + (9000000000 \\ 7)) = 9000000000 ).
+
+ self assert:(( -9000000000 \\ 7) == 2).
+ self assert:( (((-9000000000 // 7)*7) + (-9000000000 \\ 7)) = -9000000000 ).
+
+ self assert:(( 9000000000 \\ -7) == -2).
+ self assert:( (((9000000000 // -7)*-7) + (9000000000 \\ -7)) = 9000000000 ).
+
+ self assert:(( -9000000000 \\ -7) == -5).
+ self assert:( (((-9000000000 // -7)*-7) + (-9000000000 \\ -7)) = -9000000000 ).
+
+ "/ ---------------------------
+ "/ towards zero
n2 := 3.
self assert:((n1 quo: n2) == 333).
self assert:((n1 quo: n2) printString = '333').
@@ -4490,27 +4542,6 @@
self assert:((n1 quo: n2) printString = '0').
self assert:((n1 perform:'quo:' asSymbol with:n2) == 0).
- self assert:( (9000000000 \\ 4000000000) = (900 \\ 400 * 10000000)).
- self assert:( (-9000000000 \\ 4000000000) = (-900 \\ 400 * 10000000)).
- self assert:( (9000000000 \\ -4000000000) = (900 \\ -400 * 10000000)).
- self assert:( (-9000000000 \\ -4000000000) = (-900 \\ -400 * 10000000)).
- self assert:( (16000000000 \\ 4000000000) = (1600 \\ 400 * 10000000)).
- self assert:( (-16000000000 \\ 4000000000) = (-1600 \\ 400 * 10000000)).
- self assert:( (16000000000 \\ -4000000000) = (1600 \\ -400 * 10000000)).
- self assert:( (-16000000000 \\ -4000000000) = (-1600 \\ -400 * 10000000)).
-
- self assert:(( 9000000000 \\ 7 ) == 5).
- self assert:( (((9000000000 // 7)*7) + (9000000000 \\ 7)) == 9000000000 ).
-
- self assert:(( -9000000000 \\ 7) == 2).
- self assert:( (((-9000000000 // 7)*7) + (-9000000000 \\ 7)) == -9000000000 ).
-
- self assert:(( 9000000000 \\ -7) == -2).
- self assert:( (((9000000000 // -7)*-7) + (9000000000 \\ -7)) == 9000000000 ).
-
- self assert:(( -9000000000 \\ -7) == -5).
- self assert:( (((-9000000000 // -7)*-7) + (-9000000000 \\ -7)) == -9000000000 ).
-
self assert:( 900 rem: 400 ) == 100.
self assert:( (((900 quo: 400)*400) + ( 900 rem: 400 )) == 900 ).
@@ -4523,17 +4554,24 @@
self assert:( -900 rem: -400) == -100.
self assert:( (((-900 quo: -400)*-400) + ( -900 rem: -400 )) == -900 ).
- self assert:( 9000000000 rem: 4000000000 ) == 1000000000.
- self assert:( -9000000000 rem: 4000000000 ) == -1000000000.
- self assert:( 9000000000 rem: -4000000000 ) == 1000000000.
- self assert:( -9000000000 rem: -4000000000 ) == -1000000000.
+ self assert:( 9000000000 rem: 4000000000 ) = 1000000000.
+ self assert:( (((9000000000 quo: 4000000000)*4000000000) + ( 9000000000 rem: 4000000000 )) = 9000000000 ).
+
+ self assert:( -9000000000 rem: 4000000000 ) = -1000000000.
+ self assert:( (((-9000000000 quo: 4000000000)*4000000000) + ( -9000000000 rem: 4000000000 )) = -9000000000 ).
+
+ self assert:( 9000000000 rem: -4000000000 ) = 1000000000.
+ self assert:( (((9000000000 quo: -4000000000)*-4000000000) + ( 9000000000 rem: -4000000000 )) = 9000000000 ).
+
+ self assert:( -9000000000 rem: -4000000000 ) = -1000000000.
+ self assert:( (((-9000000000 quo: -4000000000)*-4000000000) + ( -9000000000 rem: -4000000000 )) = -9000000000 ).
"
self basicNew testSmallIntegerDivision1
"
"Created: / 09-06-1999 / 17:49:45 / cg"
- "Modified: / 05-07-2017 / 16:33:14 / cg"
+ "Modified: / 05-07-2017 / 16:38:27 / cg"
!
testSmallIntegerMultiplication1