RegressionTests__IntegerTest.st
changeset 1632 f399ca3f36d8
parent 1631 6e979d0e83d7
child 1640 3b418a5df23b
--- 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