#QUALITY by exept
authorClaus Gittinger <cg@exept.de>
Tue, 09 Jul 2019 14:30:19 +0200
changeset 2326 5c21d3f32845
parent 2325 070a15489964
child 2327 bf482d49aeaf
#QUALITY by exept class: RegressionTests::SmallIntegerTest changed: #testBitShift
RegressionTests__SmallIntegerTest.st
--- a/RegressionTests__SmallIntegerTest.st	Mon Jun 17 15:11:56 2019 +0200
+++ b/RegressionTests__SmallIntegerTest.st	Tue Jul 09 14:30:19 2019 +0200
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
 "{ Package: 'stx:goodies/regression' }"
 
 "{ NameSpace: RegressionTests }"
@@ -273,65 +275,75 @@
 
 testBitShift
     #(
-	(1 1 2)
-	(1 2 4)
-	(1 3 8)
-	(1 7 16r080)
-	(1 8 16r100)
-	(1 15 16r08000)
-	(1 16 16r10000)
-	(1 17 16r20000)
-	(1 30 16r040000000)
-	(1 31 16r080000000)
-	(1 32 16r100000000)
-	(1 33 16r200000000)
+        (1 1 2)
+        (1 2 4)
+        (1 3 8)
+        (1 7 16r080)
+        (1 8 16r100)
+        (1 15 16r08000)
+        (1 16 16r10000)
+        (1 17 16r20000)
+        (1 30 16r040000000)
+        (1 31 16r080000000)
+        (1 32 16r100000000)
+        (1 33 16r200000000)
 
-	(1 62 16r04000000000000000)
-	(1 63 16r08000000000000000)
-	(1 64 16r10000000000000000)
-	(1 65 16r20000000000000000)
+        (1 62 16r04000000000000000)
+        (1 63 16r08000000000000000)
+        (1 64 16r10000000000000000)
+        (1 65 16r20000000000000000)
 
-	(1 126 16r040000000000000000000000000000000)
-	(1 127 16r080000000000000000000000000000000)
-	(1 128 16r100000000000000000000000000000000)
-	(1 129 16r200000000000000000000000000000000)
+        (1 126 16r040000000000000000000000000000000)
+        (1 127 16r080000000000000000000000000000000)
+        (1 128 16r100000000000000000000000000000000)
+        (1 129 16r200000000000000000000000000000000)
 
-	(16r10 1 16r20)
-	(16r10 2 16r40)
-	(16r10 3 16r80)
-	(16r10 7 16r0800)
-	(16r10 8 16r1000)
-	(16r10 15 16r080000)
-	(16r10 16 16r100000)
-	(16r10 17 16r200000)
-	(16r10 30 16r0400000000)
-	(16r10 31 16r0800000000)
-	(16r10 32 16r1000000000)
-	(16r10 33 16r2000000000)
+        (16r10 1 16r20)
+        (16r10 2 16r40)
+        (16r10 3 16r80)
+        (16r10 7 16r0800)
+        (16r10 8 16r1000)
+        (16r10 15 16r080000)
+        (16r10 16 16r100000)
+        (16r10 17 16r200000)
+        (16r10 30 16r0400000000)
+        (16r10 31 16r0800000000)
+        (16r10 32 16r1000000000)
+        (16r10 33 16r2000000000)
 
-	(16r10 62 16r040000000000000000)
-	(16r10 63 16r080000000000000000)
-	(16r10 64 16r100000000000000000)
-	(16r10 65 16r200000000000000000)
+        (16r10 62 16r040000000000000000)
+        (16r10 63 16r080000000000000000)
+        (16r10 64 16r100000000000000000)
+        (16r10 65 16r200000000000000000)
 
-	(16r10 126 16r0400000000000000000000000000000000)
-	(16r10 127 16r0800000000000000000000000000000000)
-	(16r10 128 16r1000000000000000000000000000000000)
-	(16r10 129 16r2000000000000000000000000000000000)
+        (16r10 126 16r0400000000000000000000000000000000)
+        (16r10 127 16r0800000000000000000000000000000000)
+        (16r10 128 16r1000000000000000000000000000000000)
+        (16r10 129 16r2000000000000000000000000000000000)
     ) triplesDo:[:val :cnt :expected |
-	|rslt1 rslt2|
+        |rslt1 rslt2|
 
-	rslt1 := val bitShift:cnt.
-	self assert:(rslt1 = expected).
-	expected class == SmallInteger ifTrue:[
-	    self assert:(rslt1 == expected)
-	].
-	rslt2 := rslt1 bitShift:cnt negated.
-	self assert:(rslt2 = val).
-	val class == SmallInteger ifTrue:[
-	    self assert:(rslt2 == val)
-	].
+        rslt1 := val bitShift:cnt.
+        self assert:(rslt1 = expected).
+        expected class == SmallInteger ifTrue:[
+            self assert:(rslt1 == expected)
+        ].
+        rslt2 := rslt1 bitShift:cnt negated.
+        self assert:(rslt2 = val).
+        val class == SmallInteger ifTrue:[
+            self assert:(rslt2 == val)
+        ].
     ].
+
+    "/ negative shifts:
+    self assert:(-1 bitShift:-1) == -1. 
+    self assert:(-1 bitShift:-31) == -1. 
+    self assert:(-1 bitShift:-32) == -1. 
+    self assert:(-1 bitShift:-33) == -1. 
+    self assert:(-1 bitShift:-63) == -1. 
+    self assert:(-1 bitShift:-64) == -1. 
+    self assert:(-1 bitShift:-65) == -1. 
+    self assert:(-1 bitShift:-100) == -1. 
 !
 
 testBitShiftNegative