RegressionTests__IntegerTest.st
changeset 1307 f2b5a843d7df
parent 1305 d8800e68af7a
child 1312 b7172ac2c2bd
--- a/RegressionTests__IntegerTest.st	Mon Feb 01 19:03:16 2016 +0100
+++ b/RegressionTests__IntegerTest.st	Thu Feb 11 14:30:45 2016 +0100
@@ -842,7 +842,7 @@
     "
 !
 
-testDivision
+testDivision1
     |a b op rslt|
 
     "/ 10 divMod:3       -> #(3 1)   because 3*3 + 1 = 10
@@ -1179,6 +1179,84 @@
     "
 !
 
+testDivision2
+    |nr|
+    
+    2 to:17 do:[:m |
+        nr := 1.
+        1 to:1000 do:[:n |
+            nr := nr * m
+        ].
+        1 to:1000 do:[:n |
+            nr := nr / m
+        ].
+        self assert:(nr == 1).
+    ].
+
+    "
+     self new testDivision2
+    "
+!
+
+testDivision3
+    |nr|
+    
+    #( 
+        16r00000000000000003F 
+        16r000000000000003FFF 
+        16r0000000000003FFFFF 
+        16r00000000003FFFFFFF 
+        16r000000003FFFFFFFFF
+        16r0000003FFFFFFFFFFF
+        16r00003FFFFFFFFFFFFF
+        16r003FFFFFFFFFFFFFFF
+        16r3FFFFFFFFFFFFFFFFF
+
+        16r000000000000000040 
+        16r0000000000000040FF 
+        16r00000000000040FFFF 
+        16r000000000040FFFFFF 
+        16r0000000040FFFFFFFF
+        16r00000040FFFFFFFFFF
+        16r000040FFFFFFFFFFFF
+        16r0040FFFFFFFFFFFFFF
+        16r40FFFFFFFFFFFFFFFF
+
+        16r00000000000000007F 
+        16r000000000000007FFF 
+        16r0000000000007FFFFF 
+        16r00000000007FFFFFFF 
+        16r000000007FFFFFFFFF
+        16r0000007FFFFFFFFFFF
+        16r00007FFFFFFFFFFFFF
+        16r007FFFFFFFFFFFFFFF
+        16r7FFFFFFFFFFFFFFFFF
+
+        16r0000000000000000FF 
+        16r00000000000000FFFF 
+        16r000000000000FFFFFF 
+        16r0000000000FFFFFFFF 
+        16r00000000FFFFFFFFFF
+        16r000000FFFFFFFFFFFF
+        16r0000FFFFFFFFFFFFFF
+        16r00FFFFFFFFFFFFFFFF
+        16rFFFFFFFFFFFFFFFFFF
+    ) do:[:m |
+        nr := 1.
+        1 to:1000 do:[:n |
+            nr := nr * m
+        ].
+        1 to:1000 do:[:n |
+            nr := nr / m
+        ].
+        self assert:(nr == 1).
+    ].
+
+    "
+     self new testDivision2
+    "
+!
+
 testEncodeDecode
     self assert:(1 encodeAsBCD hexPrintString = '1').
     self assert:(12 encodeAsBCD hexPrintString = '12').
@@ -3473,6 +3551,24 @@
     "
 !
 
+testReadingPrinting1
+    |nr inString outString|
+
+    #(2 3 4 5 8 10 16) do:[:radix |
+        Transcript showCR:('testing radix %1...' bindWith:radix).
+        1 to:1000 do:[:len |
+            inString := '1',(String new:len withAll:$0).
+            nr := Integer readFrom:inString radix:radix.
+            outString := nr printStringRadix:radix.
+            self assert:(outString = inString).
+        ].    
+    ].
+    
+    "
+     self basicNew testReadingPrinting1
+    "
+!
+
 testSmallIntegerArithmetic
     "arithmetic tests.
      Notice, the arithmetic tests are both performed via regular sends