#QUALITY by cg
authorClaus Gittinger <cg@exept.de>
Wed, 05 Jul 2017 16:33:29 +0200
changeset 1631 6e979d0e83d7
parent 1630 9b89362892f3
child 1632 f399ca3f36d8
#QUALITY by cg class: RegressionTests::IntegerTest added: #testLargeIntegerHelpers4 #testMiscMath2 changed: #testSmallIntegerDivision1
RegressionTests__IntegerTest.st
--- a/RegressionTests__IntegerTest.st	Wed Jul 05 16:00:59 2017 +0200
+++ b/RegressionTests__IntegerTest.st	Wed Jul 05 16:33:29 2017 +0200
@@ -3166,6 +3166,91 @@
     "
 !
 
+testLargeIntegerHelpers4
+    "/ absDivMod:
+
+     self assert:(9000000000000000000 absMod: 4000) = 0.
+     self assert:(-9000000000000000000 absMod: 4000) = 0.
+     self assert:(9000000000000000000 absMod: -4000) = 0.
+     self assert:(-9000000000000000000 absMod: -4000) = 0.
+
+     self assert:(9000000000000000001 absMod: 4000) = 1.
+     self assert:(-9000000000000000001 absMod: 4000) = 1.
+     self assert:(9000000000000000001 absMod: -4000) = 1.
+     self assert:(-9000000000000000001 absMod: -4000) = 1.
+
+     self assert:(9000000000000000000 absMod: 40000) = 0.
+     self assert:(-9000000000000000000 absMod: 40000) = 0.
+     self assert:(9000000000000000000 absMod: -40000) = 0.
+     self assert:(-9000000000000000000 absMod: -40000) = 0.
+
+     self assert:(9000000000000000000 absMod: 400000) = 0.
+     self assert:(-9000000000000000000 absMod: 400000) = 0.
+     self assert:(9000000000000000000 absMod: -400000) = 0.
+     self assert:(-9000000000000000000 absMod: -400000) = 0.
+
+     self assert:(9000000000000000000 absMod: 4000000) = 0.
+     self assert:(-9000000000000000000 absMod: 4000000) = 0.
+     self assert:(9000000000000000000 absMod: -4000000) = 0.
+     self assert:(-9000000000000000000 absMod: -4000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 40000000) = 0.
+     self assert:(-9000000000000000000 absMod: 40000000) = 0.
+     self assert:(9000000000000000000 absMod: -40000000) = 0.
+     self assert:(-9000000000000000000 absMod: -40000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 400000000) = 0.
+     self assert:(-9000000000000000000 absMod: 400000000) = 0.
+     self assert:(9000000000000000000 absMod: -400000000) = 0.
+     self assert:(-9000000000000000000 absMod: -400000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 4000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 4000000000) = 0.
+     self assert:(9000000000000000000 absMod: -4000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -4000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 40000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 40000000000) = 0.
+     self assert:(9000000000000000000 absMod: -40000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -40000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 400000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 400000000000) = 0.
+     self assert:(9000000000000000000 absMod: -400000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -400000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 4000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 4000000000000) = 0.
+     self assert:(9000000000000000000 absMod: -4000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -4000000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 40000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 40000000000000) = 0.
+     self assert:(9000000000000000000 absMod: -40000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -40000000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 400000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 400000000000000) = 0.
+     self assert:(9000000000000000000 absMod: -400000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -400000000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 4000000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: 4000000000000000) = 0.
+     self assert:(9000000000000000000 absMod: -4000000000000000) = 0.
+     self assert:(-9000000000000000000 absMod: -4000000000000000) = 0.
+
+     self assert:(9000000000000000000 absMod: 4000000000000000000) = 1000000000000000000.
+     self assert:(-9000000000000000000 absMod: 4000000000000000000) = 1000000000000000000.
+     self assert:(9000000000000000000 absMod: -4000000000000000000) = 1000000000000000000.
+     self assert:(-9000000000000000000 absMod: -4000000000000000000) = 1000000000000000000.
+
+    "
+     self basicNew testLargeIntegerHelpers4
+    "
+
+    "Created: / 05-07-2017 / 16:15:30 / cg"
+!
+
 testLargeMultiplication
     |t1 t2 p|
 
@@ -3807,6 +3892,16 @@
     "Modified (comment): / 02-07-2017 / 14:39:26 / cg"
 !
 
+testMiscMath2
+    self assert:(10000000000000000000000001 isPrime) not.
+
+    "
+     self basicNew testMiscMath2
+    "
+
+    "Created: / 05-07-2017 / 16:18:54 / cg"
+!
+
 testModulu
     |a b op|
 
@@ -4395,12 +4490,50 @@
     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 ).
+
+    self assert:( -900 rem: 400) == -100.  
+    self assert:( (((-900 quo: 400)*400) + ( -900 rem: 400 )) == -900 ).
+
+    self assert:( 900 rem: -400) == 100.  
+    self assert:( (((900 quo: -400)*-400) + ( 900 rem: -400 )) == 900 ).
+
+    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 basicNew testSmallIntegerDivision1
     "
 
-    "Modified: / 9.6.1999 / 17:47:56 / cg"
-    "Created: / 9.6.1999 / 17:49:45 / cg"
+    "Created: / 09-06-1999 / 17:49:45 / cg"
+    "Modified: / 05-07-2017 / 16:33:14 / cg"
 !
 
 testSmallIntegerMultiplication1