# HG changeset patch # User Claus Gittinger # Date 940970082 -7200 # Node ID 7b7d7890a9393d948dfc1b46dfe43ce52c50091a # Parent 17d7ab8098465e67e8c9e8eb4e1fcc0e1eda0573 checkin from browser diff -r 17d7ab809846 -r 7b7d7890a939 RegressionTests__IntegerTest.st --- a/RegressionTests__IntegerTest.st Tue Oct 26 22:00:54 1999 +0200 +++ b/RegressionTests__IntegerTest.st Tue Oct 26 22:34:42 1999 +0200 @@ -532,6 +532,137 @@ "Modified: / 6.6.1999 / 14:46:11 / cg" ! +testIntegerShifts + "arithmetic tests. + Notice, the arithmetic tests are both performed via regular sends + and via constructed performs. The reason is to test both inlined + JIT-compiler code AND the regular methods code." + + |n1 n2 s| + + n1 := 100000. + n2 := n1 negated. + s := 1. + + self test:[n1 printString = '100000']. + self test:[n2 printString = '-100000']. + + self test:[(n1 bitShift:s) printString = '200000']. + self test:[(n1 bitShift:1) printString = '200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:1) printString = '200000']. + + s := s + 1. + self test:[(n1 bitShift:s) printString = '400000']. + self test:[(n1 bitShift:2) printString = '400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:2) printString = '400000']. + + s := s + 1. + self test:[(n1 bitShift:s) printString = '800000']. + self test:[(n1 bitShift:3) printString = '800000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '800000']. + self test:[(n1 perform:'bitShift:' asSymbol with:3) printString = '800000']. + + s := s + 1. + self test:[(n1 bitShift:s) printString = '1600000']. + self test:[(n1 bitShift:4) printString = '1600000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '1600000']. + self test:[(n1 perform:'bitShift:' asSymbol with:4) printString = '1600000']. + + s := s + 1. + self test:[(n1 bitShift:s) printString = '3200000']. + self test:[(n1 bitShift:5) printString = '3200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '3200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:5) printString = '3200000']. + + s := s + 1. + self test:[(n1 bitShift:s) printString = '6400000']. + self test:[(n1 bitShift:6) printString = '6400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '6400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:6) printString = '6400000']. + + s := s + 1. + self test:[(n1 bitShift:s) printString = '12800000']. + self test:[(n1 bitShift:7) printString = '12800000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '12800000']. + self test:[(n1 perform:'bitShift:' asSymbol with:7) printString = '12800000']. + + n1 := 12800000. + s := -1. + self test:[(n1 bitShift:s) printString = '6400000']. + self test:[(n1 bitShift:-1) printString = '6400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '6400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-1) printString = '6400000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '3200000']. + self test:[(n1 bitShift:-2) printString = '3200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '3200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-2) printString = '3200000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '1600000']. + self test:[(n1 bitShift:-3) printString = '1600000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '1600000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-3) printString = '1600000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '800000']. + self test:[(n1 bitShift:-4) printString = '800000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '800000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-4) printString = '800000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '400000']. + self test:[(n1 bitShift:-5) printString = '400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '400000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-5) printString = '400000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '200000']. + self test:[(n1 bitShift:-6) printString = '200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '200000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-6) printString = '200000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '100000']. + self test:[(n1 bitShift:-7) printString = '100000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '100000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-7) printString = '100000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '50000']. + self test:[(n1 bitShift:-8) printString = '50000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '50000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-8) printString = '50000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '25000']. + self test:[(n1 bitShift:-9) printString = '25000']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '25000']. + self test:[(n1 perform:'bitShift:' asSymbol with:-9) printString = '25000']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '12500']. + self test:[(n1 bitShift:-10) printString = '12500']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '12500']. + self test:[(n1 perform:'bitShift:' asSymbol with:-10) printString = '12500']. + + s := s - 1. + self test:[(n1 bitShift:s) printString = '6250']. + self test:[(n1 bitShift:-11) printString = '6250']. + self test:[(n1 perform:'bitShift:' asSymbol with:s) printString = '6250']. + self test:[(n1 perform:'bitShift:' asSymbol with:-11) printString = '6250']. + + " + self testIntegerShifts + " + + "Created: / 6.6.1999 / 14:47:51 / cg" + "Modified: / 9.6.1999 / 17:49:57 / cg" +! + testLargeAddition "general conversion & arithmetic tests. Notice, the arithmetic tests are both performed via regular sends @@ -1221,6 +1352,141 @@ self test:[(n1 * 16) printString = '1600000']. self test:[(n1 perform:'*' asSymbol with:16) printString = '1600000']. + n1 := 1. + n2 := 10. + self test:[(n1 * n2) printString = '10']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000000']. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000000']. + + n1 := 1. + n2 := 10. + self test:[(n1 * n2) printString = '10']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '100']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '1000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '10000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '100000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '1000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '10000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '100000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '1000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '10000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '100000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '1000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000000']. + n1 := n1 * 10. + self test:[(n1 * n2) printString = '10000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000000']. + + n1 := 10. + n2 := 10. + self test:[(n1 * n2) printString = '100']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000000000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '10000000000000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '10000000000000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '1000000000000000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '1000000000000000000000000']. + n1 := n1 * 10. + n2 := n2 * 10. + self test:[(n1 * n2) printString = '100000000000000000000000000']. + self test:[(n1 perform:'*' asSymbol with:n2) printString = '100000000000000000000000000']. + " self testSmallIntegerMultiplication1 "