RegressionTests__IntegerTest.st
branchjv
changeset 1487 c737fa75ba5a
parent 1485 5a1aadddbc7f
child 1497 a7335c367bb0
--- a/RegressionTests__IntegerTest.st	Wed Apr 13 23:15:27 2016 +0100
+++ b/RegressionTests__IntegerTest.st	Tue Apr 26 21:49:30 2016 +0100
@@ -1485,6 +1485,80 @@
     "Created: / 27-04-2010 / 09:49:31 / cg"
 !
 
+testHighBitLowBit
+    self assert:( 2r0 highBit == 0).
+    self assert:( 2r1 highBit == 1).
+    self assert:( 2r10 highBit == 2).  
+    self assert:( 2r100 highBit == 3).  
+    self assert:( 2r1000 highBit == 4).  
+    self assert:( 16r10 highBit == 5).
+    self assert:( 16r100 highBit == 9).
+    self assert:( 16r1000 highBit == 13).
+    self assert:( 16r10000 highBit == 17).
+    self assert:( 16r100000 highBit == 21).
+    self assert:( 16r1000000 highBit == 25).
+    self assert:( 16r10000000 highBit == 29).
+    self assert:( 16r100000000 highBit == 33).
+    self assert:( 16r1000000000 highBit == 37).
+    self assert:( 16r10000000000 highBit == 41).
+    self assert:( 16r100000000000 highBit == 45).
+    self assert:( 16r1000000000000 highBit == 49).
+    self assert:( 16r10000000000000 highBit == 53).
+    self assert:( 16r100000000000000 highBit == 57).
+    self assert:( 16r1000000000000000 highBit == 61).
+    self assert:( 16r10000000000000000 highBit == 65).
+    self assert:( (1 bitShift:1000) highBit == 1001).
+
+    self assert:( 2r0 lowBit == 0).
+    self assert:( 2r1 lowBit == 1).
+    self assert:( 2r10 lowBit == 2).  
+    self assert:( 2r100 lowBit == 3).  
+    self assert:( 2r1000 lowBit == 4).  
+    self assert:( 16r10 lowBit == 5).
+    self assert:( 16r100 lowBit == 9).
+    self assert:( 16r1000 lowBit == 13).
+    self assert:( 16r10000 lowBit == 17).
+    self assert:( 16r100000 lowBit == 21).
+    self assert:( 16r1000000 lowBit == 25).
+    self assert:( 16r10000000 lowBit == 29).
+    self assert:( 16r100000000 lowBit == 33).
+    self assert:( 16r1000000000 lowBit == 37).
+    self assert:( 16r10000000000 lowBit == 41).
+    self assert:( 16r100000000000 lowBit == 45).
+    self assert:( 16r1000000000000 lowBit == 49).
+    self assert:( 16r10000000000000 lowBit == 53).
+    self assert:( 16r100000000000000 lowBit == 57).
+    self assert:( 16r1000000000000000 lowBit == 61).
+    self assert:( 16r10000000000000000 lowBit == 65).
+    self assert:( (1 bitShift:1000) lowBit == 1001).
+    
+    self assert:(( 2r1 bitOr: 16r10000000000) lowBit = 1).
+    self assert:(( 2r10 bitOr: 16r10000000000) lowBit = 2).  
+    self assert:(( 2r100 bitOr: 16r10000000000) lowBit = 3).  
+    self assert:(( 2r1000 bitOr: 16r10000000000) lowBit = 4).  
+    self assert:(( 16r10 bitOr: 16r10000000000) lowBit = 5).
+    self assert:(( 16r100 bitOr: 16r10000000000) lowBit = 9).
+    self assert:(( 16r1000 bitOr: 16r10000000000) lowBit = 13).
+    self assert:(( 16r10000 bitOr: 16r10000000000) lowBit = 17).
+    self assert:(( 16r100000 bitOr: 16r10000000000) lowBit = 21).
+    self assert:(( 16r1000000 bitOr: 16r10000000000) lowBit = 25).
+    self assert:(( 16r10000000 bitOr: 16r10000000000) lowBit = 29).
+    self assert:(( 16r100000000 bitOr: 16r10000000000) lowBit = 33).
+    self assert:(( 16r1000000000 bitOr: 16r10000000000) lowBit = 37).
+    self assert:(( 16r10000000000 bitOr: 16r10000000000) lowBit = 41).
+    self assert:(( 16r100000000000 bitOr: 16r100000000000) lowBit = 45).
+    self assert:(( 16r1000000000000 bitOr: 16r1000000000000) lowBit = 49).
+    self assert:(( 16r10000000000000 bitOr: 16r10000000000000) lowBit = 53).
+    self assert:(( 16r100000000000000 bitOr: 16r100000000000000) lowBit = 57).
+    self assert:(( 16r1000000000000000 bitOr: 16r1000000000000000) lowBit = 61).
+    self assert:(( 16r10000000000000000 bitOr: 16r10000000000000000) lowBit = 65).
+    self assert:(( (1 bitShift:1000) bitOr: (1 bitShift:1001)) lowBit = 1001).
+
+    "
+     self basicNew testHighBitLowBit
+    "
+!
+
 testILC
     "inline-cache"