#QUALITY by cg
class: RegressionTests::IntegerTest
changed: #testLargeMultiplication
--- a/RegressionTests__IntegerTest.st Fri Sep 02 11:31:58 2016 +0200
+++ b/RegressionTests__IntegerTest.st Fri Sep 02 18:45:56 2016 +0200
@@ -3138,7 +3138,7 @@
!
testLargeMultiplication
- |t1 t2|
+ |t1 t2 p|
"multiplication"
t1 := 100.
@@ -3161,12 +3161,12 @@
t1 := 100000.
SmallInteger maxBytes == 4 ifTrue:[
- self assert:(t1 * t1 = 10000000000).
- self assert:((t1 perform:'*' asSymbol with:t1) = 10000000000).
+ self assert:(t1 * t1 = 10000000000).
+ self assert:((t1 perform:'*' asSymbol with:t1) = 10000000000).
].
SmallInteger maxBytes == 8 ifTrue:[
- self assert:(t1 * t1 == 10000000000).
- self assert:((t1 perform:'*' asSymbol with:t1) == 10000000000).
+ self assert:(t1 * t1 == 10000000000).
+ self assert:((t1 perform:'*' asSymbol with:t1) == 10000000000).
].
self assert:((t1 * t1) printString = '10000000000').
@@ -3197,8 +3197,10 @@
t1 := 100000000. "/ small
t2 := 100000000000000000. "/ large on 32bit; small on 64bt machines
- self assert:(t1 * t2) = 10000000000000000000000000.
- self assert:(t2 * t1) = 10000000000000000000000000.
+ p := t1 * t2.
+ self assert:(p = 10000000000000000000000000).
+ p := t2 * t1.
+ self assert:(p = 10000000000000000000000000).
t1 := 100000000. "/ small
t2 := 1000000000000000000. "/ large on 32bit; small on 64bt machines
@@ -3312,49 +3314,49 @@
self assert:((t1 * t1) printString = '489576143188809998144298426641311496989165214458056165805143410866108690058261346129614030084813851082564698610174813898740525406243367146120734370570458429364167811695064904353093506532695086211301649001517008746471464304183710723162864634442619484210170532881759249266026059786349673031239277666195699357198366128286910123306594912484590029738722281929300359929462301099981920256369394887701755497894820998573896950238852994224811101315810851671448056042419257789317787959570728520197146733902575090480065597582292177085754523686580725860228636039424698638422538988050350726807943014483010988455057592156160000').
#(
- 16rFF
- 16rFFFF
- 16rFFFFFF
- 16rFFFFFFFF
- 16rFFFFFFFFFF
- 16rFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFFFFFFFF
+ 16rFF
+ 16rFFFF
+ 16rFFFFFF
+ 16rFFFFFFFF
+ 16rFFFFFFFFFF
+ 16rFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFFFFFFFF
) do:[:eachFactor1 |
- #(
- 16rFF
- 16rFFFF
- 16rFFFFFF
- 16rFFFFFFFF
- 16rFFFFFFFFFF
- 16rFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFFFFFF
- 16rFFFFFFFFFFFFFFFFFFFFFFFF
- ) do:[:eachFactor2 |
- |t3|
-
- t1 := (eachFactor1 * eachFactor2).
- t2 := (eachFactor2 * eachFactor1).
-
- self assert:(t1 = t2).
+ #(
+ 16rFF
+ 16rFFFF
+ 16rFFFFFF
+ 16rFFFFFFFF
+ 16rFFFFFFFFFF
+ 16rFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFFFFFF
+ 16rFFFFFFFFFFFFFFFFFFFFFFFF
+ ) do:[:eachFactor2 |
+ |t3|
+
+ t1 := (eachFactor1 * eachFactor2).
+ t2 := (eachFactor2 * eachFactor1).
+
+ self assert:(t1 = t2).
t1 = 20203181441155852828228393631745 ifTrue:[
eachFactor1 = 1099511627775 ifTrue:[
self halt
]].
- self assert:(t1 / eachFactor1) = eachFactor2.
- self assert:(t1 / eachFactor2) = eachFactor1.
- t3 := (eachFactor1 asLargeInteger * eachFactor2 asLargeInteger).
- self assert: t1 = t3.
- ].
+ self assert:(t1 / eachFactor1) = eachFactor2.
+ self assert:(t1 / eachFactor2) = eachFactor1.
+ t3 := (eachFactor1 asLargeInteger * eachFactor2 asLargeInteger).
+ self assert: t1 = t3.
+ ].
].
"