#QUALITY by cg
class: RegressionTests::IntegerTest
class definition
added:142 methods
class: RegressionTests::IntegerTest class
added:
#version
#version_CVS
--- a/RegressionTests__IntegerTest.st Thu Jul 20 16:54:57 2017 +0200
+++ b/RegressionTests__IntegerTest.st Fri Jul 21 15:24:53 2017 +0200
@@ -4408,6 +4408,65 @@
"
!
+testSignExtension
+ "/ 8bit
+ self assert:( 16r80 signExtendedByteValue = -128 ).
+ self assert:( 16r7F signExtendedByteValue = 127 ).
+ self assert:( 16rFF signExtendedByteValue = -1 ).
+
+ "/ higher bits are ignored
+ self assert:( 16rF80 signExtendedByteValue = -128 ).
+ self assert:( 16rF7F signExtendedByteValue = 127 ).
+ self assert:( 16rFFF signExtendedByteValue = -1 ).
+
+ "/ 16bit
+ self assert:( 16r8000 signExtendedShortValue = -32768 ).
+ self assert:( 16r7FFF signExtendedShortValue = 32767 ).
+ self assert:( 16rFFFF signExtendedShortValue = -1 ).
+
+ "/ higher bits are ignored
+ self assert:( 16rF8000 signExtendedShortValue = -32768 ).
+ self assert:( 16rF7FFF signExtendedShortValue = 32767 ).
+ self assert:( 16rFFFFF signExtendedShortValue = -1 ).
+
+ "/ 24bit
+ self assert:( 16r800000 signExtended24BitValue = -8388608 ).
+ self assert:( 16r7FFFFF signExtended24BitValue = 8388607 ).
+ self assert:( 16rFFFFFF signExtended24BitValue = -1 ).
+
+ "/ higher bits are ignored
+ self assert:( 16rF800000 signExtended24BitValue = -8388608 ).
+ self assert:( 16rF7FFFFF signExtended24BitValue = 8388607 ).
+ self assert:( 16rFFFFFFF signExtended24BitValue = -1 ).
+
+ "/ 32bit
+ self assert:( 16r80000000 signExtendedLongValue = -2147483648 ).
+ self assert:( 16r7FFFFFFF signExtendedLongValue = 2147483647 ).
+ self assert:( 16rFFFFFFFF signExtendedLongValue = -1 ).
+
+ "/ higher bits are ignored
+ self assert:( 16rF80000000 signExtendedLongValue = -2147483648 ).
+ self assert:( 16rF7FFFFFFF signExtendedLongValue = 2147483647 ).
+ self assert:( 16rFFFFFFFFF signExtendedLongValue = -1 ).
+
+ "/ 64bit
+ self assert:( 16r8000000000000000 signExtendedLongLongValue = -9223372036854775808 ).
+ self assert:( 16r7FFFFFFFFFFFFFFF signExtendedLongLongValue = 9223372036854775807 ).
+ self assert:( 16rFFFFFFFFFFFFFFFF signExtendedLongLongValue = -1 ).
+
+ "/ higher bits are ignored
+ self assert:( 16rF8000000000000000 signExtendedLongLongValue = -9223372036854775808 ).
+ self assert:( 16rF7FFFFFFFFFFFFFFF signExtendedLongLongValue = 9223372036854775807 ).
+ self assert:( 16rFFFFFFFFFFFFFFFFF signExtendedLongLongValue = -1 ).
+
+ "/ arbitrary nr of bits
+ self assert:( 2r1000 signExtendedFromBit:4) = -8 .
+ self assert:( 2r0111 signExtendedFromBit:4) = 7 .
+ self assert:( 2r1111 signExtendedFromBit:4) = -1 .
+
+ "Created: / 21-07-2017 / 15:15:53 / cg"
+!
+
testSmallIntegerArithmetic
"arithmetic tests.
Notice, the arithmetic tests are both performed via regular sends