#FEATURE by cg
authorClaus Gittinger <cg@exept.de>
Sun, 21 Jul 2019 21:03:08 +0200
changeset 2331 ebd02b4587a8
parent 2330 c7cb74c4ed7b
child 2332 f30d7df1a177
#FEATURE by cg class: RegressionTests::IntegerTest added: #testReading3 #testReading4 category of:29 methods
RegressionTests__IntegerTest.st
--- a/RegressionTests__IntegerTest.st	Sat Jul 13 14:16:52 2019 +0200
+++ b/RegressionTests__IntegerTest.st	Sun Jul 21 21:03:08 2019 +0200
@@ -12,7 +12,7 @@
 !
 
 
-!IntegerTest methodsFor:'misc'!
+!IntegerTest methodsFor:'helpers'!
 
 do:a plus:b
     ^  a + b
@@ -31,6 +31,50 @@
     "Modified: / 9.6.1999 / 16:57:20 / cg"
 !
 
+doCompare:a againstEqual:b
+    self assert:(a < b) not.
+    self assert:(a <= b).
+    self assert:(a = b).
+    self assert:(a ~= b) not.
+    self assert:(a > b) not.
+    self assert:(a >= b).
+
+    self assert:(a perform:#<   with:b) not.
+    self assert:(a perform:#<=  with:b).
+    self assert:(a perform:#=   with:b).
+    self assert:(a perform:#~=  with:b) not.
+    self assert:(a perform:#>   with:b) not.
+    self assert:(a perform:#>=  with:b).
+
+    "
+     self basicNew doCompare:12 againstEqual:12
+    "
+!
+
+doCompare:a againstGreater:b
+    self assert:(a < b).
+    self assert:(a <= b).
+    self assert:(a = b) not.
+    self assert:(a ~= b).
+    self assert:(a == b) not.
+    self assert:(a ~~ b).
+    self assert:(a > b) not.
+    self assert:(a >= b) not.
+
+    self assert:(a perform:#<   with:b).
+    self assert:(a perform:#<=  with:b).
+    self assert:(a perform:#=   with:b) not.
+    self assert:(a perform:#~=  with:b).
+    self assert:(a perform:#==  with:b) not.
+    self assert:(a perform:#~~  with:b).
+    self assert:(a perform:#>   with:b) not.
+    self assert:(a perform:#>=  with:b) not.
+
+    "
+     self basicNew doCompare:12 againstGreater:16r80000000
+    "
+!
+
 doMul0_a:arg
     ^ arg * 0
 
@@ -665,50 +709,6 @@
 
 !IntegerTest methodsFor:'tests'!
 
-doCompare:a againstEqual:b
-    self assert:(a < b) not.
-    self assert:(a <= b).
-    self assert:(a = b).
-    self assert:(a ~= b) not.
-    self assert:(a > b) not.
-    self assert:(a >= b).
-
-    self assert:(a perform:#<   with:b) not.
-    self assert:(a perform:#<=  with:b).
-    self assert:(a perform:#=   with:b).
-    self assert:(a perform:#~=  with:b) not.
-    self assert:(a perform:#>   with:b) not.
-    self assert:(a perform:#>=  with:b).
-
-    "
-     self basicNew doCompare:12 againstEqual:12
-    "
-!
-
-doCompare:a againstGreater:b
-    self assert:(a < b).
-    self assert:(a <= b).
-    self assert:(a = b) not.
-    self assert:(a ~= b).
-    self assert:(a == b) not.
-    self assert:(a ~~ b).
-    self assert:(a > b) not.
-    self assert:(a >= b) not.
-
-    self assert:(a perform:#<   with:b).
-    self assert:(a perform:#<=  with:b).
-    self assert:(a perform:#=   with:b) not.
-    self assert:(a perform:#~=  with:b).
-    self assert:(a perform:#==  with:b) not.
-    self assert:(a perform:#~~  with:b).
-    self assert:(a perform:#>   with:b) not.
-    self assert:(a perform:#>=  with:b) not.
-
-    "
-     self basicNew doCompare:12 againstGreater:16r80000000
-    "
-!
-
 doTestAll
     "general conversion & arithmetic tests.
      Notice, the arithmetic tests are both performed via regular sends
@@ -3867,59 +3867,6 @@
     "
 !
 
-testLiteralNumbers
-    self assert:(self num_00000000000010000 hexPrintString = '10000').
-    self assert:(self num_00000000000100000 hexPrintString = '100000').
-    self assert:(self num_00000000001000000 hexPrintString = '1000000').
-    self assert:(self num_00000000010000000 hexPrintString = '10000000').
-    self assert:(self num_00000000100000000 hexPrintString = '100000000').
-    self assert:(self num_00000001000000000 hexPrintString = '1000000000').
-    self assert:(self num_00000010000000000 hexPrintString = '10000000000').
-    self assert:(self num_00000100000000000 hexPrintString = '100000000000').
-    self assert:(self num_00001000000000000 hexPrintString = '1000000000000').
-    self assert:(self num_00010000000000000 hexPrintString = '10000000000000').
-    self assert:(self num_00100000000000000 hexPrintString = '100000000000000').
-    self assert:(self num_01000000000000000 hexPrintString = '1000000000000000').
-    self assert:(self num_10000000000000000 hexPrintString = '10000000000000000').
-
-    self assert:(self num_00000000000007FFF hexPrintString = '7FFF').
-    self assert:(self num_00000000000008000 hexPrintString = '8000').
-    self assert:(self num_0000000000000FFFF hexPrintString = 'FFFF').
-    self assert:(self num_000000000007FFFFF hexPrintString = '7FFFFF').
-    self assert:(self num_00000000000800000 hexPrintString = '800000').
-    self assert:(self num_00000000000FFFFFF hexPrintString = 'FFFFFF').
-    self assert:(self num_0000000007FFFFFFF hexPrintString = '7FFFFFFF').
-    self assert:(self num_00000000080000000 hexPrintString = '80000000').
-    self assert:(self num_000000000FFFFFFFF hexPrintString = 'FFFFFFFF').
-    self assert:(self num_0000000FFFFFFFFFF hexPrintString = 'FFFFFFFFFF').
-    self assert:(self num_00000FFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFF').
-    self assert:(self num_000FFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFF').
-    self assert:(self num_0FFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFF').
-    self assert:(self num_1FFFFFFFFFFFFFFFF hexPrintString = '1FFFFFFFFFFFFFFFF').
-    self assert:(self num_20000000000000000 hexPrintString = '20000000000000000').
-    self assert:(self num_3FFFFFFFFFFFFFFFF hexPrintString = '3FFFFFFFFFFFFFFFF').
-    self assert:(self num_40000000000000000 hexPrintString = '40000000000000000').
-    self assert:(self num_7FFFFFFFFFFFFFFFF hexPrintString = '7FFFFFFFFFFFFFFFF').
-    self assert:(self num_80000000000000000 hexPrintString = '80000000000000000').
-
-    self assert:(self num_00000FFFFFFFFFFFE hexPrintString = 'FFFFFFFFFFFE').
-    self assert:(self num_00000FFFFFFFFFFFC hexPrintString = 'FFFFFFFFFFFC').
-    self assert:(self num_00000FFFFFFFFFFF8 hexPrintString = 'FFFFFFFFFFF8').
-    self assert:(self num_00000FFFFFFFFFFF0 hexPrintString = 'FFFFFFFFFFF0').
-    self assert:(self num_00000FFFFFFFFFFE0 hexPrintString = 'FFFFFFFFFFE0').
-    self assert:(self num_00000FFFFFFFFFFC0 hexPrintString = 'FFFFFFFFFFC0').
-    self assert:(self num_00000FFFFFFFFFF80 hexPrintString = 'FFFFFFFFFF80').
-    self assert:(self num_00000FFFFFFFFFF00 hexPrintString = 'FFFFFFFFFF00').
-
-    self assert:(self num_0000000000FFF0000 hexPrintString = 'FFF0000').
-
-    "
-     self basicNew testLiteralNumbers
-    "
-
-    "Modified: / 4.6.1999 / 18:41:09 / cg"
-!
-
 testMiscMath
     self assert:(2 raisedTo:2) == 4.
     self assert:(2 raisedTo:2.0) = 4.0.
@@ -4206,284 +4153,6 @@
     "
 !
 
-testPrinting1
-    self assert:(10 printString = '10').
-    self assert:(100 printString = '100').
-    self assert:(1000 printString = '1000').
-    self assert:(10000 printString = '10000').
-    self assert:(100000 printString = '100000').
-    self assert:(1000000 printString = '1000000').
-    self assert:(10000000 printString = '10000000').
-    self assert:(100000000 printString = '100000000').
-    self assert:(1000000000 printString = '1000000000').
-    self assert:(10000000000 printString = '10000000000').
-    self assert:(100000000000 printString = '100000000000').
-    self assert:(1000000000000 printString = '1000000000000').
-    self assert:(10000000000000 printString = '10000000000000').
-    self assert:(100000000000000 printString = '100000000000000').
-    self assert:(1000000000000000 printString = '1000000000000000').
-    self assert:(10000000000000000 printString = '10000000000000000').
-    self assert:(100000000000000000 printString = '100000000000000000').
-    self assert:(1000000000000000000 printString = '1000000000000000000').
-    self assert:(10000000000000000000 printString = '10000000000000000000').
-
-    self assert:(16rF hexPrintString = 'F').
-    self assert:(16rFF hexPrintString = 'FF').
-    self assert:(16rFFF hexPrintString = 'FFF').
-    self assert:(16rFFFF hexPrintString = 'FFFF').
-    self assert:(16rFFFFF hexPrintString = 'FFFFF').
-    self assert:(16rFFFFFF hexPrintString = 'FFFFFF').
-    self assert:(16rFFFFFFF hexPrintString = 'FFFFFFF').
-    self assert:(16rFFFFFFFF hexPrintString = 'FFFFFFFF').
-    self assert:(16rFFFFFFFFF hexPrintString = 'FFFFFFFFF').
-    self assert:(16rFFFFFFFFFF hexPrintString = 'FFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFFFF').
-    self assert:(16rFFFFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFFFFF').
-
-    self assert:(16r10 hexPrintString = '10').
-    self assert:(16r100 hexPrintString = '100').
-    self assert:(16r1000 hexPrintString = '1000').
-    self assert:(16r10000 hexPrintString = '10000').
-    self assert:(16r100000 hexPrintString = '100000').
-    self assert:(16r1000000 hexPrintString = '1000000').
-    self assert:(16r10000000 hexPrintString = '10000000').
-    self assert:(16r100000000 hexPrintString = '100000000').
-    self assert:(16r1000000000 hexPrintString = '1000000000').
-    self assert:(16r10000000000 hexPrintString = '10000000000').
-    self assert:(16r100000000000 hexPrintString = '100000000000').
-    self assert:(16r1000000000000 hexPrintString = '1000000000000').
-    self assert:(16r10000000000000 hexPrintString = '10000000000000').
-    self assert:(16r100000000000000 hexPrintString = '100000000000000').
-    self assert:(16r1000000000000000 hexPrintString = '1000000000000000').
-    self assert:(16r10000000000000000 hexPrintString = '10000000000000000').
-    self assert:(16r100000000000000000 hexPrintString = '100000000000000000').
-
-    self assert:(126 printString) = '126'.
-    self assert:(127 printString) = '127'.
-    self assert:(128 printString) = '128'.
-
-    self assert:(255 printString) = '255'.
-    self assert:(256 printString) = '256'.
-    self assert:(257 printString) = '257'.
-
-    self assert:(32767 printString) = '32767'.
-    self assert:(32768 printString) = '32768'.
-    self assert:(32769 printString) = '32769'.
-
-    self assert:(65535 printString) = '65535'.
-    self assert:(65536 printString) = '65536'.
-    self assert:(65537 printString) = '65537'.
-
-    self assert:(2147483647 printString) = '2147483647'.
-    self assert:(2147483648 printString) = '2147483648'.
-    self assert:(2147483649 printString) = '2147483649'.
-
-    self assert:(4294967295 printString) = '4294967295'.
-    self assert:(4294967296 printString) = '4294967296'.
-    self assert:(4294967297 printString) = '4294967297'.
-
-    self assert:(127 printStringRadix:16) = '7F'.
-    self assert:(123 printStringRadix:12) = 'A3'.
-    self assert:(123 printStringRadix:10) = '123'.
-    self assert:(123 printStringRadix:8 ) = '173'.
-    self assert:(123 printStringRadix:3 ) = '11120'.
-    self assert:(123 printStringRadix:2 ) = '1111011'.
-    self should:[ 123 printStringRadix:1 ] raise:Error.
-
-    "
-     self basicNew testPrinting1
-    "
-
-    "Modified: / 26.10.1999 / 22:01:35 / stefan"
-!
-
-testReading1
-    |t|
-
-    self assert:((Integer readFrom:'4865804016353280000') printString = '4865804016353280000').
-    self assert:((Integer readFrom:'4294967295') printString = '4294967295').
-    self assert:((Integer readFrom:'4294967295') = 4294967295).
-    self assert:((Integer readFrom:'4294967296') printString = '4294967296').
-    self assert:((Integer readFrom:'4294967296') = 4294967296).
-    self assert:((Integer readFrom:'4294967297') printString = '4294967297').
-    self assert:((Integer readFrom:'4294967297') = 4294967297).
-
-    "/ max-smallint on 32bit machines
-    self assert:((Integer readFrom:'1073741823') printString = '1073741823').
-    self assert:((Integer readFrom:'1073741823') class == SmallInteger).
-
-    "/ min-smallint on 32bit machines
-    self assert:((Integer readFrom:'-1073741824') printString = '-1073741824').
-    self assert:((Integer readFrom:'-1073741824') class == SmallInteger).
-
-    "/ max-smallint on 64bit machines
-    self assert:((Integer readFrom:'4611686018427387903') printString = '4611686018427387903').
-    SmallInteger maxBytes == 8 ifTrue:[
-        self assert:((Integer readFrom:'4611686018427387903') class == SmallInteger)
-    ].
-    "/ max-smallint+1 on 64bit machines
-    self assert:((Integer readFrom:'4611686018427387900') printString = '4611686018427387900').
-    SmallInteger maxBytes == 8 ifTrue:[
-        |tt t3 t3b t4a t4b t4c|
-
-        self assert:((Integer readFrom:'4611686018427387900') class == SmallInteger).
-        tt := (Integer readFrom:'4611686018427387900').
-        t3 := tt + 3.
-        self assert:(t3 class == SmallInteger).
-        self assert:(t3 printString = '4611686018427387903').
-        t3b := (self do:tt plus:3).
-        self assert:(t3b class == SmallInteger).
-        self assert:(t3b printString = '4611686018427387903').
-        t4a := t3 + 1.
-        self assert:(t4a class == LargeInteger).
-        self assert:(t4a printString = '4611686018427387904').
-        t4b := tt + 4.
-        self assert:(t4b class == LargeInteger).
-        self assert:(t4b printString = '4611686018427387904').
-        t4c := (self do:tt plus:4).
-        self assert:(t4c class == LargeInteger).
-        self assert:(t4c printString = '4611686018427387904').
-    ].
-    self assert:((Integer readFrom:'4611686018427387904') printString = '4611686018427387904').
-    self assert:((Integer readFrom:'4611686018427387904') class == LargeInteger).
-
-    "/ min-smallint on 64bit machines
-    self assert:((Integer readFrom:'-4611686018427387904') printString = '-4611686018427387904').
-    SmallInteger maxBytes == 8 ifTrue:[
-        self assert:((Integer readFrom:'-4611686018427387904') class == SmallInteger)
-    ].
-    self assert:((Integer readFrom:'-4611686018427387904') printString = '-4611686018427387904').
-    SmallInteger maxBytes == 8 ifTrue:[
-        self assert:((Integer readFrom:'-4611686018427387904') class == SmallInteger)
-    ].
-    self assert:((Integer readFrom:'FFFFFFFF' radix:16) hexPrintString = 'FFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'FFFFFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'3FFFFFFFFFFFFFF' radix:16) hexPrintString = '3FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'7FFFFFFFFFFFFFF' radix:16) hexPrintString = '7FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'400000000000000' radix:16) hexPrintString = '400000000000000').
-    self assert:((Integer readFrom:'800000000000000' radix:16) hexPrintString = '800000000000000').
-
-    self assert:((Integer readFrom:'16r-FFFFFFFF') printString = '-4294967295').
-    self assert:((Integer readFrom:'16r-FFFFFFFFF') hexPrintString = '-FFFFFFFFF').
-    self assert:((Integer readFrom:'16r-FFFFFFFFFF') hexPrintString = '-FFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-FFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-FFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-FFFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-FFFFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-FFFFFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-3FFFFFFFFFFFFFF') hexPrintString = '-3FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-7FFFFFFFFFFFFFF') hexPrintString = '-7FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'16r-400000000000000') hexPrintString = '-400000000000000').
-    self assert:((Integer readFrom:'16r-800000000000000') hexPrintString = '-800000000000000').
-
-    self assert:((Integer readFrom:'10000000' radix:16) hexPrintString = '10000000').
-    self assert:((Integer readFrom:'100000000' radix:16) hexPrintString = '100000000').
-    self assert:((Integer readFrom:'1000000000' radix:16) hexPrintString = '1000000000').
-    self assert:((Integer readFrom:'10000000000' radix:16) hexPrintString = '10000000000').
-    self assert:((Integer readFrom:'100000000000' radix:16) hexPrintString = '100000000000').
-    self assert:((Integer readFrom:'1000000000000' radix:16) hexPrintString = '1000000000000').
-    self assert:((Integer readFrom:'10000000000000' radix:16) hexPrintString = '10000000000000').
-
-    self assert:((Integer readFrom:'1152921504606846975' radix:10) hexPrintString = 'FFFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'288230376151711743' radix:10) hexPrintString = '3FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'576460752303423487' radix:10) hexPrintString = '7FFFFFFFFFFFFFF').
-    self assert:((Integer readFrom:'288230376151711744' radix:10) hexPrintString = '400000000000000').
-    self assert:((Integer readFrom:'576460752303423488' radix:10) hexPrintString = '800000000000000').
-
-    t := Integer readFrom:'FFFFFFFF' radix:16.
-    self assert:((t + 1) hexPrintString = '100000000').
-    t := Integer readFrom:'FFFFFFFFF' radix:16.
-    self assert:((t + 1) hexPrintString = '1000000000').
-    t := Integer readFrom:'FFFFFFFFFF' radix:16.
-    self assert:((t + 1) hexPrintString = '10000000000').
-    t := Integer readFrom:'FFFFFFFFFFF' radix:16.
-    self assert:((t + 1) hexPrintString = '100000000000').
-
-    t := Integer readFrom:'10000000' radix:16.
-    self assert:((t + 1) hexPrintString = '10000001').
-    t := Integer readFrom:'100000000' radix:16.
-    self assert:((t + 1) hexPrintString = '100000001').
-    t := Integer readFrom:'1000000000' radix:16.
-    self assert:((t + 1) hexPrintString = '1000000001').
-    t := Integer readFrom:'10000000000' radix:16.
-    self assert:((t + 1) hexPrintString = '10000000001').
-
-    "
-     self basicNew testReading1
-    "
-
-    "Modified: / 19-09-2017 / 16:27:56 / stefan"
-!
-
-testReading2
-    #(
-        305419896
-        16r1FFFFFFF
-        16r3FFFFFFF
-        16r7FFFFFFF
-        16rFFFFFFFF
-        16r1FFFFFFFFFFFFFFF
-        16r3FFFFFFFFFFFFFFF
-        16r7FFFFFFFFFFFFFFF
-        16rFFFFFFFFFFFFFFFF
-        16r1FFFFFFFFFFFFFFFFFFFFFFF
-        16r3FFFFFFFFFFFFFFFFFFFFFFF
-        16r7FFFFFFFFFFFFFFFFFFFFFFF
-        16rFFFFFFFFFFFFFFFFFFFFFFFF
-        16r1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
-        16r3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
-        16r7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
-        16rFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
-    ) do:[:each | 
-        |s|
-
-        2 to:35 do:[:radix |
-            s := each printStringRadix:radix.
-            self assert:(Integer readFrom:s radix:radix) = each
-        ]
-    ].
-
-    "
-     self basicNew testReading2
-    "
-
-    "Created: / 27-03-2019 / 18:00:54 / Claus Gittinger"
-!
-
-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) description:('read/print failed for radix ',radix printString).
-        ].    
-    ].
-    
-    "
-     self basicNew testReadingPrinting1
-    "
-!
-
 testSignExtension
     "/ 8bit
     self assert:( 16r80 signExtendedByteValue = -128 ).
@@ -5616,6 +5285,399 @@
                             = #(2 2 3 5 5 7 7 11 11 11 11 13 13 17 17 17 17 19 19 23 23 23 23 29 29 29 29 29 29 31 31).
 ! !
 
+!IntegerTest methodsFor:'tests-reading & printing'!
+
+testLiteralNumbers
+    self assert:(self num_00000000000010000 hexPrintString = '10000').
+    self assert:(self num_00000000000100000 hexPrintString = '100000').
+    self assert:(self num_00000000001000000 hexPrintString = '1000000').
+    self assert:(self num_00000000010000000 hexPrintString = '10000000').
+    self assert:(self num_00000000100000000 hexPrintString = '100000000').
+    self assert:(self num_00000001000000000 hexPrintString = '1000000000').
+    self assert:(self num_00000010000000000 hexPrintString = '10000000000').
+    self assert:(self num_00000100000000000 hexPrintString = '100000000000').
+    self assert:(self num_00001000000000000 hexPrintString = '1000000000000').
+    self assert:(self num_00010000000000000 hexPrintString = '10000000000000').
+    self assert:(self num_00100000000000000 hexPrintString = '100000000000000').
+    self assert:(self num_01000000000000000 hexPrintString = '1000000000000000').
+    self assert:(self num_10000000000000000 hexPrintString = '10000000000000000').
+
+    self assert:(self num_00000000000007FFF hexPrintString = '7FFF').
+    self assert:(self num_00000000000008000 hexPrintString = '8000').
+    self assert:(self num_0000000000000FFFF hexPrintString = 'FFFF').
+    self assert:(self num_000000000007FFFFF hexPrintString = '7FFFFF').
+    self assert:(self num_00000000000800000 hexPrintString = '800000').
+    self assert:(self num_00000000000FFFFFF hexPrintString = 'FFFFFF').
+    self assert:(self num_0000000007FFFFFFF hexPrintString = '7FFFFFFF').
+    self assert:(self num_00000000080000000 hexPrintString = '80000000').
+    self assert:(self num_000000000FFFFFFFF hexPrintString = 'FFFFFFFF').
+    self assert:(self num_0000000FFFFFFFFFF hexPrintString = 'FFFFFFFFFF').
+    self assert:(self num_00000FFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFF').
+    self assert:(self num_000FFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFF').
+    self assert:(self num_0FFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFF').
+    self assert:(self num_1FFFFFFFFFFFFFFFF hexPrintString = '1FFFFFFFFFFFFFFFF').
+    self assert:(self num_20000000000000000 hexPrintString = '20000000000000000').
+    self assert:(self num_3FFFFFFFFFFFFFFFF hexPrintString = '3FFFFFFFFFFFFFFFF').
+    self assert:(self num_40000000000000000 hexPrintString = '40000000000000000').
+    self assert:(self num_7FFFFFFFFFFFFFFFF hexPrintString = '7FFFFFFFFFFFFFFFF').
+    self assert:(self num_80000000000000000 hexPrintString = '80000000000000000').
+
+    self assert:(self num_00000FFFFFFFFFFFE hexPrintString = 'FFFFFFFFFFFE').
+    self assert:(self num_00000FFFFFFFFFFFC hexPrintString = 'FFFFFFFFFFFC').
+    self assert:(self num_00000FFFFFFFFFFF8 hexPrintString = 'FFFFFFFFFFF8').
+    self assert:(self num_00000FFFFFFFFFFF0 hexPrintString = 'FFFFFFFFFFF0').
+    self assert:(self num_00000FFFFFFFFFFE0 hexPrintString = 'FFFFFFFFFFE0').
+    self assert:(self num_00000FFFFFFFFFFC0 hexPrintString = 'FFFFFFFFFFC0').
+    self assert:(self num_00000FFFFFFFFFF80 hexPrintString = 'FFFFFFFFFF80').
+    self assert:(self num_00000FFFFFFFFFF00 hexPrintString = 'FFFFFFFFFF00').
+
+    self assert:(self num_0000000000FFF0000 hexPrintString = 'FFF0000').
+
+    "
+     self basicNew testLiteralNumbers
+    "
+
+    "Modified: / 4.6.1999 / 18:41:09 / cg"
+!
+
+testPrinting1
+    self assert:(10 printString = '10').
+    self assert:(100 printString = '100').
+    self assert:(1000 printString = '1000').
+    self assert:(10000 printString = '10000').
+    self assert:(100000 printString = '100000').
+    self assert:(1000000 printString = '1000000').
+    self assert:(10000000 printString = '10000000').
+    self assert:(100000000 printString = '100000000').
+    self assert:(1000000000 printString = '1000000000').
+    self assert:(10000000000 printString = '10000000000').
+    self assert:(100000000000 printString = '100000000000').
+    self assert:(1000000000000 printString = '1000000000000').
+    self assert:(10000000000000 printString = '10000000000000').
+    self assert:(100000000000000 printString = '100000000000000').
+    self assert:(1000000000000000 printString = '1000000000000000').
+    self assert:(10000000000000000 printString = '10000000000000000').
+    self assert:(100000000000000000 printString = '100000000000000000').
+    self assert:(1000000000000000000 printString = '1000000000000000000').
+    self assert:(10000000000000000000 printString = '10000000000000000000').
+
+    self assert:(16rF hexPrintString = 'F').
+    self assert:(16rFF hexPrintString = 'FF').
+    self assert:(16rFFF hexPrintString = 'FFF').
+    self assert:(16rFFFF hexPrintString = 'FFFF').
+    self assert:(16rFFFFF hexPrintString = 'FFFFF').
+    self assert:(16rFFFFFF hexPrintString = 'FFFFFF').
+    self assert:(16rFFFFFFF hexPrintString = 'FFFFFFF').
+    self assert:(16rFFFFFFFF hexPrintString = 'FFFFFFFF').
+    self assert:(16rFFFFFFFFF hexPrintString = 'FFFFFFFFF').
+    self assert:(16rFFFFFFFFFF hexPrintString = 'FFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFFFF').
+    self assert:(16rFFFFFFFFFFFFFFFFFFFFFF hexPrintString = 'FFFFFFFFFFFFFFFFFFFFFF').
+
+    self assert:(16r10 hexPrintString = '10').
+    self assert:(16r100 hexPrintString = '100').
+    self assert:(16r1000 hexPrintString = '1000').
+    self assert:(16r10000 hexPrintString = '10000').
+    self assert:(16r100000 hexPrintString = '100000').
+    self assert:(16r1000000 hexPrintString = '1000000').
+    self assert:(16r10000000 hexPrintString = '10000000').
+    self assert:(16r100000000 hexPrintString = '100000000').
+    self assert:(16r1000000000 hexPrintString = '1000000000').
+    self assert:(16r10000000000 hexPrintString = '10000000000').
+    self assert:(16r100000000000 hexPrintString = '100000000000').
+    self assert:(16r1000000000000 hexPrintString = '1000000000000').
+    self assert:(16r10000000000000 hexPrintString = '10000000000000').
+    self assert:(16r100000000000000 hexPrintString = '100000000000000').
+    self assert:(16r1000000000000000 hexPrintString = '1000000000000000').
+    self assert:(16r10000000000000000 hexPrintString = '10000000000000000').
+    self assert:(16r100000000000000000 hexPrintString = '100000000000000000').
+
+    self assert:(126 printString) = '126'.
+    self assert:(127 printString) = '127'.
+    self assert:(128 printString) = '128'.
+
+    self assert:(255 printString) = '255'.
+    self assert:(256 printString) = '256'.
+    self assert:(257 printString) = '257'.
+
+    self assert:(32767 printString) = '32767'.
+    self assert:(32768 printString) = '32768'.
+    self assert:(32769 printString) = '32769'.
+
+    self assert:(65535 printString) = '65535'.
+    self assert:(65536 printString) = '65536'.
+    self assert:(65537 printString) = '65537'.
+
+    self assert:(2147483647 printString) = '2147483647'.
+    self assert:(2147483648 printString) = '2147483648'.
+    self assert:(2147483649 printString) = '2147483649'.
+
+    self assert:(4294967295 printString) = '4294967295'.
+    self assert:(4294967296 printString) = '4294967296'.
+    self assert:(4294967297 printString) = '4294967297'.
+
+    self assert:(127 printStringRadix:16) = '7F'.
+    self assert:(123 printStringRadix:12) = 'A3'.
+    self assert:(123 printStringRadix:10) = '123'.
+    self assert:(123 printStringRadix:8 ) = '173'.
+    self assert:(123 printStringRadix:3 ) = '11120'.
+    self assert:(123 printStringRadix:2 ) = '1111011'.
+    self should:[ 123 printStringRadix:1 ] raise:Error.
+
+    "
+     self basicNew testPrinting1
+    "
+
+    "Modified: / 26.10.1999 / 22:01:35 / stefan"
+!
+
+testReading1
+    |t|
+
+    self assert:((Integer readFrom:'4865804016353280000') printString = '4865804016353280000').
+    self assert:((Integer readFrom:'4294967295') printString = '4294967295').
+    self assert:((Integer readFrom:'4294967295') = 4294967295).
+    self assert:((Integer readFrom:'4294967296') printString = '4294967296').
+    self assert:((Integer readFrom:'4294967296') = 4294967296).
+    self assert:((Integer readFrom:'4294967297') printString = '4294967297').
+    self assert:((Integer readFrom:'4294967297') = 4294967297).
+
+    "/ max-smallint on 32bit machines
+    self assert:((Integer readFrom:'1073741823') printString = '1073741823').
+    self assert:((Integer readFrom:'1073741823') class == SmallInteger).
+
+    "/ min-smallint on 32bit machines
+    self assert:((Integer readFrom:'-1073741824') printString = '-1073741824').
+    self assert:((Integer readFrom:'-1073741824') class == SmallInteger).
+
+    "/ max-smallint on 64bit machines
+    self assert:((Integer readFrom:'4611686018427387903') printString = '4611686018427387903').
+    SmallInteger maxBytes == 8 ifTrue:[
+        self assert:((Integer readFrom:'4611686018427387903') class == SmallInteger)
+    ].
+    "/ max-smallint+1 on 64bit machines
+    self assert:((Integer readFrom:'4611686018427387900') printString = '4611686018427387900').
+    SmallInteger maxBytes == 8 ifTrue:[
+        |tt t3 t3b t4a t4b t4c|
+
+        self assert:((Integer readFrom:'4611686018427387900') class == SmallInteger).
+        tt := (Integer readFrom:'4611686018427387900').
+        t3 := tt + 3.
+        self assert:(t3 class == SmallInteger).
+        self assert:(t3 printString = '4611686018427387903').
+        t3b := (self do:tt plus:3).
+        self assert:(t3b class == SmallInteger).
+        self assert:(t3b printString = '4611686018427387903').
+        t4a := t3 + 1.
+        self assert:(t4a class == LargeInteger).
+        self assert:(t4a printString = '4611686018427387904').
+        t4b := tt + 4.
+        self assert:(t4b class == LargeInteger).
+        self assert:(t4b printString = '4611686018427387904').
+        t4c := (self do:tt plus:4).
+        self assert:(t4c class == LargeInteger).
+        self assert:(t4c printString = '4611686018427387904').
+    ].
+    self assert:((Integer readFrom:'4611686018427387904') printString = '4611686018427387904').
+    self assert:((Integer readFrom:'4611686018427387904') class == LargeInteger).
+
+    "/ min-smallint on 64bit machines
+    self assert:((Integer readFrom:'-4611686018427387904') printString = '-4611686018427387904').
+    SmallInteger maxBytes == 8 ifTrue:[
+        self assert:((Integer readFrom:'-4611686018427387904') class == SmallInteger)
+    ].
+    self assert:((Integer readFrom:'-4611686018427387904') printString = '-4611686018427387904').
+    SmallInteger maxBytes == 8 ifTrue:[
+        self assert:((Integer readFrom:'-4611686018427387904') class == SmallInteger)
+    ].
+    self assert:((Integer readFrom:'FFFFFFFF' radix:16) hexPrintString = 'FFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'FFFFFFFFFFFFFFF' radix:16) hexPrintString = 'FFFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'3FFFFFFFFFFFFFF' radix:16) hexPrintString = '3FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'7FFFFFFFFFFFFFF' radix:16) hexPrintString = '7FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'400000000000000' radix:16) hexPrintString = '400000000000000').
+    self assert:((Integer readFrom:'800000000000000' radix:16) hexPrintString = '800000000000000').
+
+    self assert:((Integer readFrom:'16r-FFFFFFFF') printString = '-4294967295').
+    self assert:((Integer readFrom:'16r-FFFFFFFFF') hexPrintString = '-FFFFFFFFF').
+    self assert:((Integer readFrom:'16r-FFFFFFFFFF') hexPrintString = '-FFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-FFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-FFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-FFFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-FFFFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-FFFFFFFFFFFFFFF') hexPrintString = '-FFFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-3FFFFFFFFFFFFFF') hexPrintString = '-3FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-7FFFFFFFFFFFFFF') hexPrintString = '-7FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'16r-400000000000000') hexPrintString = '-400000000000000').
+    self assert:((Integer readFrom:'16r-800000000000000') hexPrintString = '-800000000000000').
+
+    self assert:((Integer readFrom:'10000000' radix:16) hexPrintString = '10000000').
+    self assert:((Integer readFrom:'100000000' radix:16) hexPrintString = '100000000').
+    self assert:((Integer readFrom:'1000000000' radix:16) hexPrintString = '1000000000').
+    self assert:((Integer readFrom:'10000000000' radix:16) hexPrintString = '10000000000').
+    self assert:((Integer readFrom:'100000000000' radix:16) hexPrintString = '100000000000').
+    self assert:((Integer readFrom:'1000000000000' radix:16) hexPrintString = '1000000000000').
+    self assert:((Integer readFrom:'10000000000000' radix:16) hexPrintString = '10000000000000').
+
+    self assert:((Integer readFrom:'1152921504606846975' radix:10) hexPrintString = 'FFFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'288230376151711743' radix:10) hexPrintString = '3FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'576460752303423487' radix:10) hexPrintString = '7FFFFFFFFFFFFFF').
+    self assert:((Integer readFrom:'288230376151711744' radix:10) hexPrintString = '400000000000000').
+    self assert:((Integer readFrom:'576460752303423488' radix:10) hexPrintString = '800000000000000').
+
+    t := Integer readFrom:'FFFFFFFF' radix:16.
+    self assert:((t + 1) hexPrintString = '100000000').
+    t := Integer readFrom:'FFFFFFFFF' radix:16.
+    self assert:((t + 1) hexPrintString = '1000000000').
+    t := Integer readFrom:'FFFFFFFFFF' radix:16.
+    self assert:((t + 1) hexPrintString = '10000000000').
+    t := Integer readFrom:'FFFFFFFFFFF' radix:16.
+    self assert:((t + 1) hexPrintString = '100000000000').
+
+    t := Integer readFrom:'10000000' radix:16.
+    self assert:((t + 1) hexPrintString = '10000001').
+    t := Integer readFrom:'100000000' radix:16.
+    self assert:((t + 1) hexPrintString = '100000001').
+    t := Integer readFrom:'1000000000' radix:16.
+    self assert:((t + 1) hexPrintString = '1000000001').
+    t := Integer readFrom:'10000000000' radix:16.
+    self assert:((t + 1) hexPrintString = '10000000001').
+
+    "
+     self basicNew testReading1
+    "
+
+    "Modified: / 19-09-2017 / 16:27:56 / stefan"
+!
+
+testReading2
+    #(
+        305419896
+        16r1FFFFFFF
+        16r3FFFFFFF
+        16r7FFFFFFF
+        16rFFFFFFFF
+        16r1FFFFFFFFFFFFFFF
+        16r3FFFFFFFFFFFFFFF
+        16r7FFFFFFFFFFFFFFF
+        16rFFFFFFFFFFFFFFFF
+        16r1FFFFFFFFFFFFFFFFFFFFFFF
+        16r3FFFFFFFFFFFFFFFFFFFFFFF
+        16r7FFFFFFFFFFFFFFFFFFFFFFF
+        16rFFFFFFFFFFFFFFFFFFFFFFFF
+        16r1FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+        16r3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+        16r7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+        16rFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+    ) do:[:each | 
+        |s|
+
+        2 to:35 do:[:radix |
+            s := each printStringRadix:radix.
+            self assert:(Integer readFrom:s radix:radix) = each
+        ]
+    ].
+
+    "
+     self basicNew testReading2
+    "
+
+    "Created: / 27-03-2019 / 18:00:54 / Claus Gittinger"
+!
+
+testReading3
+    "thousands character - german"
+    
+    #(
+        ('1.234'        1234)
+        ('1.234.567'    1234567)
+        ('1234.567'     1234567)
+        ('12345.67'     nil)
+        ('12345.6789'   nil)
+        ('12345.'       nil)
+        ('12345.1'      nil)
+        ('12345.a'      nil)
+    ) pairsDo:[:string :expected |
+        |value|
+        
+        value := Integer 
+                    fromString:string
+                    decimalPointCharacter:$, 
+                    thousandsSeparator:$. 
+                    onError:nil.
+        self assert:(value = expected)            
+    ].
+
+    "
+     self basicNew testReading3
+    "
+
+    "Created: / 21-07-2019 / 19:51:58 / Claus Gittinger"
+!
+
+testReading4
+    "thousands character - us"
+    
+    #(
+        ('1,234'        1234)
+        ('1,234,567'    1234567)
+        ('1234,567'     1234567)
+        ('12345,67'     nil)
+        ('12345,6789'   nil)
+        ('12345,'       nil)
+        ('12345,1'      nil)
+        ('12345,a'      nil)
+    ) pairsDo:[:string :expected |
+        |value|
+        
+        value := Integer 
+                    fromString:string
+                    decimalPointCharacter:$. 
+                    thousandsSeparator:$, 
+                    onError:nil.
+        self assert:(value = expected)            
+    ].
+
+    "
+     self basicNew testReading4
+    "
+
+    "Created: / 21-07-2019 / 19:54:51 / Claus Gittinger"
+!
+
+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) description:('read/print failed for radix ',radix printString).
+        ].    
+    ].
+    
+    "
+     self basicNew testReadingPrinting1
+    "
+! !
+
 !IntegerTest class methodsFor:'documentation'!
 
 version