# HG changeset patch # User Claus Gittinger # Date 1562675419 -7200 # Node ID 5c21d3f32845f08213e417deba77e4264c22536a # Parent 070a15489964bb2b781e89618f28b26d55aa1232 #QUALITY by exept class: RegressionTests::SmallIntegerTest changed: #testBitShift diff -r 070a15489964 -r 5c21d3f32845 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