#QUALITY by cg
authorClaus Gittinger <cg@exept.de>
Wed, 07 Dec 2016 12:28:40 +0100
changeset 1560 d1ef7904a2e8
parent 1559 fac3158cfb4b
child 1561 31aebd1daf2d
#QUALITY by cg testNextPowerOf2
RegressionTests__IntegerTest.st
--- a/RegressionTests__IntegerTest.st	Tue Dec 06 14:34:24 2016 +0100
+++ b/RegressionTests__IntegerTest.st	Wed Dec 07 12:28:40 2016 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
 "{ Package: 'stx:goodies/regression' }"
 
 "{ NameSpace: RegressionTests }"
@@ -3963,6 +3961,32 @@
     "
 !
 
+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:(16rFFFFFFFF nextPowerOf2 = 16r100000000). 
+    self assert:(16r1FFFFFFFFFFFFFFF nextPowerOf2 = 16r2000000000000000).  
+    self assert:(16r3FFFFFFFFFFFFFFF nextPowerOf2 = 16r4000000000000000).  
+    self assert:(16r7FFFFFFFFFFFFFFF nextPowerOf2 = 16r8000000000000000).  
+    self assert:(16rFFFFFFFFFFFFFFFF nextPowerOf2 = 16r10000000000000000).  
+
+    "
+     self basicNew testNextPowerOfTwo
+    "
+!
+
 testPrinting1
     self assert:(10 printString = '10').
     self assert:(100 printString = '100').
@@ -4716,14 +4740,19 @@
     n2 := n1 negated.
     n3 := n2 negated.
 
-    self assert:(n1 class == SmallInteger).
-    self assert:(n2 class == SmallInteger).
-    self assert:(n3 == n1).
-
+    SmallInteger maxBytes == 8 ifTrue:[
+        self assert:(n1 class == SmallInteger).
+        self assert:(n2 class == SmallInteger).
+        self assert:(n3 == n1).
+        self assert:(n2 == -16rfFFFFFFF).
+        self assert:(n1 == 16rfFFFFFFF).
+    ] 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 == 16rfFFFFFFF).
-    self assert:(n2 == -16rfFFFFFFF).
     self assert:(n1 printString = '4294967295').
     self assert:(n2 printString = '-4294967295').
 
@@ -4756,6 +4785,8 @@
     "
      self basicNew testSmallIntegerNegation
     "
+
+    "Modified: / 10-10-2016 / 23:31:11 / cg"
 ! !
 
 !IntegerTest methodsFor:'tests-class protocol'!