#QUALITY by exept
class: RegressionTests::SmallIntegerTest
changed: #testBitShift
--- 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