--- a/RegressionTests__SmallIntegerTest.st Mon Mar 23 14:43:16 2009 +0100
+++ b/RegressionTests__SmallIntegerTest.st Tue Apr 07 16:11:00 2009 +0200
@@ -17,6 +17,67 @@
self assert: (3 / 2) isFraction.
self assert: 4 / 2 = 2.
self should: [ 1 / 0 ] raise: ZeroDivide.
+!
+
+testMultiply
+ |i ii|
+
+ #(
+ 16r3fff
+ 16r7fff
+ 16rffff
+ 16r3fffffff
+ 16r7fffffff
+ 16rffffffff
+ 16r20000000
+ 16r40000000
+ 16r80000000
+ 16r100000000
+ 16r20000001
+ 16r40000001
+ 16r80000001
+ 16r100000001
+ ) do:[:x |
+ i := x.
+ ii := i * i.
+ self assert:((ii / i) = i).
+ i class == SmallInteger ifTrue:[
+ self assert:((ii / i) == i).
+ ].
+
+ i := x negated.
+ ii := i * i.
+ self assert:((ii / i) = i).
+ i class == SmallInteger ifTrue:[
+ self assert:((ii / i) == i).
+ ].
+ ].
+!
+
+testNegation
+ |i iN iNN|
+
+ #(
+ 16r3fffffff
+ 16r7fffffff
+ 16rffffffff
+ 16r20000000
+ 16r40000000
+ 16r80000000
+ 16r100000000
+ 16r20000001
+ 16r40000001
+ 16r80000001
+ 16r100000001
+ ) do:[:x |
+ i := x.
+ iN := i negated.
+ iNN := iN negated.
+ self assert:(i = iNN).
+ i class == SmallInteger ifTrue:[
+ self assert:(i == iNN).
+ ].
+ ].
! !
!SmallIntegerTest methodsFor:'tests-class protocol'!