RegressionTests__SmallIntegerTest.st
changeset 364 fd3ff5ad69f5
parent 310 f7a1f000a281
child 619 f918fa22ad81
--- 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'!