RegressionTests__IntegerTest.st
branchjv
changeset 1564 2a4963ef3a4a
parent 1542 a2d6838ad6f6
parent 1562 99605886ba85
child 1974 f2eaf05205d6
--- a/RegressionTests__IntegerTest.st	Wed Nov 30 13:56:33 2016 +0000
+++ b/RegressionTests__IntegerTest.st	Thu Dec 08 10:28:07 2016 +0000
@@ -3961,6 +3961,36 @@
     "
 !
 
+testNextPowerOfTwo
+    "/ self assert:(0 nextPowerOf2 = 0).
+    self assert:(1 nextPowerOf2 = 1).
+    self assert:(2 nextPowerOf2 = 2).
+    self assert:(3 nextPowerOf2 = 4).
+    self assert:(4 nextPowerOf2 = 4).
+    self assert:(5 nextPowerOf2 = 8).
+    self assert:(6 nextPowerOf2 = 8).
+    self assert:(7 nextPowerOf2 = 8).
+    self assert:(8 nextPowerOf2 = 8).
+    self assert:(9 nextPowerOf2 = 16).
+
+    self assert:(22 nextPowerOf2 = 32).
+    self assert:(32 nextPowerOf2 = 32).
+    self assert:(16rFFFF nextPowerOf2 = 16r10000).  
+    self assert:(16r1FFFFFFF nextPowerOf2 = 16r20000000).  
+    self assert:(16r3FFFFFFF nextPowerOf2 = 16r40000000).  
+    self assert:(16r7FFFFFFF nextPowerOf2 = 16r80000000).  
+    self assert:(16rFFFFFFFF nextPowerOf2 = 16r100000000). 
+    self assert:(16r1FFFFFFFFFFFFFFF nextPowerOf2 = 16r2000000000000000).  
+    self assert:(16r3FFFFFFFFFFFFFFF nextPowerOf2 = 16r4000000000000000).  
+    self assert:(16r7FFFFFFFFFFFFFFF nextPowerOf2 = 16r8000000000000000).  
+    self assert:(16rFFFFFFFFFFFFFFFF nextPowerOf2 = 16r10000000000000000).  
+    self assert:(16rFFFFFFFFFFFFFFFFFFFF nextPowerOf2 = 16r100000000000000000000).  
+
+    "
+     self basicNew testNextPowerOfTwo
+    "
+!
+
 testPrinting1
     self assert:(10 printString = '10').
     self assert:(100 printString = '100').
@@ -4710,22 +4740,25 @@
 
     "/ ---------------------
 
+    n1 := 16rffffffff.
+    n2 := n1 negated.
+    n3 := n2 negated.
+
     SmallInteger maxBytes == 8 ifTrue:[
-        n1 := 16rffffffff.
-        n2 := n1 negated.
-        n3 := n2 negated.
-
         self assert:(n1 class == SmallInteger).
         self assert:(n2 class == SmallInteger).
         self assert:(n3 == n1).
-
-        self assert:(n1 = 16rfFFFFFFF).
-        self assert:(n2 = -16rfFFFFFFF).
+        self assert:(n2 == -16rfFFFFFFF).
         self assert:(n1 == 16rfFFFFFFF).
-        self assert:(n2 == -16rfFFFFFFF).
-        self assert:(n1 printString = '4294967295').
-        self assert:(n2 printString = '-4294967295').
+    ] ifFalse:[
+        self assert:(n1 class == LargeInteger).
+        self assert:(n2 class == LargeInteger).
+        self assert:(n3 = n1).
     ].
+    self assert:(n1 = 16rfFFFFFFF).
+    self assert:(n2 = -16rfFFFFFFF).
+    self assert:(n1 printString = '4294967295').
+    self assert:(n2 printString = '-4294967295').
 
     "/ ---------------------
 
@@ -4759,6 +4792,7 @@
     "
 
     "Modified: / 09-11-2016 / 15:38:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+    "Modified: / 10-10-2016 / 23:31:11 / cg"
 ! !
 
 !IntegerTest methodsFor:'tests-class protocol'!