--- a/RegressionTests__FloatTest.st Fri Feb 26 16:36:47 2016 +0000
+++ b/RegressionTests__FloatTest.st Fri Mar 04 08:16:39 2016 +0000
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"{ Package: 'exept:regression' }"
"{ NameSpace: RegressionTests }"
@@ -484,7 +486,7 @@
"/ rsltLargeFloat := arg asLargeFloat perform:op.
self assert:(rslt class == Float).
- self assert:(rsltShortFloat class == Float). "/ ???
+ "/ self assert:(rsltShortFloat class == Float). "/ ??? not a good test; some return a float
self assert:(rsltLongFloat class == LongFloat).
self assert:( rslt - rsltShortFloat ) < epsilon.
@@ -582,6 +584,8 @@
"
self basicNew test06_MiscMath
"
+
+ "Modified (comment): / 27-02-2016 / 00:33:20 / cg"
!
test07_Truncation
--- a/RegressionTests__IntegerTest.st Fri Feb 26 16:36:47 2016 +0000
+++ b/RegressionTests__IntegerTest.st Fri Mar 04 08:16:39 2016 +0000
@@ -1,3 +1,5 @@
+"{ Encoding: utf8 }"
+
"{ Package: 'exept:regression' }"
"{ NameSpace: RegressionTests }"
@@ -1271,6 +1273,108 @@
"
!
+testDivision4
+ "boundary conditions, wehre smallInts should be returned"
+
+ |n1 n2 r|
+
+ n1 := 1152921504606846976. "/ 16r1000000000000000
+ n2 := -1073741824. "/ 16r40000000
+ r := n1 / n2.
+ self assert:(r = -1073741824).
+ self assert:(r class == SmallInteger).
+ self assert:(r == -1073741824).
+
+ n1 := 1152921504606846976. "/ 16r1000000000000000
+ n2 := 1073741824. "/ 16r40000000
+ r := n1 / n2.
+ self assert:(r = 1073741824).
+ SmallInteger maxBytes == 8 ifTrue:[
+ self assert:(r class == SmallInteger).
+ self assert:(r == 1073741824).
+ ].
+
+ n1 := 1152921504606846976. "/ 16r1000000000000000
+ n2 := -536870912. "/ 16r20000000
+ r := n1 / n2.
+ self assert:(r = -2147483648).
+ SmallInteger maxBytes == 8 ifTrue:[
+ self assert:(r class == SmallInteger).
+ self assert:(r == -2147483648).
+ ].
+
+ n1 := 1152921504606846976. "/ 16r1000000000000000
+ n2 := 536870912. "/ 16r20000000
+ r := n1 / n2.
+ self assert:(r = 2147483648).
+ SmallInteger maxBytes == 8 ifTrue:[
+ self assert:(r class == SmallInteger).
+ self assert:(r == 2147483648).
+ ].
+
+ n1 := 1152921504606846976. "/ 16r1000000000000000
+ n2 := -2147483648. "/ 16r80000000
+ r := n1 / n2.
+ self assert:(r = -536870912).
+ self assert:(r class == SmallInteger).
+ self assert:(r == -536870912).
+
+ n1 := 1152921504606846976. "/ 16r1000000000000000
+ n2 := 2147483648. "/ 16r80000000
+ r := n1 / n2.
+ self assert:(r = 536870912).
+ self assert:(r class == SmallInteger).
+ self assert:(r == 536870912).
+
+ n1 := 21267647932558653966460912964485513216. "/ 16r10000000000000000000000000000000
+ n2 := -4611686018427387904. "/ 16r4000000000000000
+ r := n1 / n2.
+ self assert:(r = -4611686018427387904).
+ SmallInteger maxBytes == 8 ifTrue:[
+ self assert:(r class == SmallInteger).
+ self assert:(r == -4611686018427387904).
+ ].
+
+ n1 := 21267647932558653966460912964485513216. "/ 16r10000000000000000000000000000000
+ n2 := 4611686018427387904. "/ 16r4000000000000000
+ r := n1 / n2.
+ self assert:(r = 4611686018427387904).
+
+ n1 := 21267647932558653966460912964485513216. "/ 16r10000000000000000000000000000000
+ n2 := -2305843009213693952. "/ 16r2000000000000000
+ r := n1 / n2.
+ self assert:(r = -9223372036854775808).
+
+ n1 := 21267647932558653966460912964485513216. "/ 16r10000000000000000000000000000000
+ n2 := 2305843009213693952. "/ 16r2000000000000000
+ r := n1 / n2.
+ self assert:(r = 9223372036854775808).
+
+ n1 := 21267647932558653966460912964485513216. "/ 16r10000000000000000000000000000000
+ n2 := -9223372036854775808. "/ 16r8000000000000000
+ r := n1 / n2.
+ self assert:(r = -2305843009213693952).
+ SmallInteger maxBytes == 8 ifTrue:[
+ self assert:(r class == SmallInteger).
+ self assert:(r == -2305843009213693952).
+ ].
+
+ n1 := 21267647932558653966460912964485513216. "/ 16r10000000000000000000000000000000
+ n2 := 9223372036854775808. "/ 16r8000000000000000
+ r := n1 / n2.
+ self assert:(r = 2305843009213693952).
+ SmallInteger maxBytes == 8 ifTrue:[
+ self assert:(r class == SmallInteger).
+ self assert:(r == 2305843009213693952).
+ ].
+
+ "
+ self new testDivision4
+ "
+
+ "Created: / 26-02-2016 / 20:21:47 / cg"
+!
+
testEncodeDecode
self assert:(1 encodeAsBCD hexPrintString = '1').
self assert:(12 encodeAsBCD hexPrintString = '12').
@@ -2085,25 +2189,59 @@
self assert:(16rFFEEDDCCBBAA998877665544332211 bitOr:16rFFFFFFFFFFFFFFFFFFFFFFFF) hexPrintString = 'FFEEDDFFFFFFFFFFFFFFFFFFFFFFFF'.
Time millisecondsToRun:[
- 1000000 timesRepeat:[
- (16rFFEEDDCCBBAA998877665544332211 bitAnd:16rFFFFFFFFFFFFFFFFFFFFFFFF)
- ]
+ 1000000 timesRepeat:[
+ (16rFFEEDDCCBBAA998877665544332211 bitAnd:16rFFFFFFFFFFFFFFFFFFFFFFFF)
+ ]
].
"/ bitAnd inherited via Integer: 1638 1575 1576
"/ bitAnd tuned in largeInteger: 172 171 172
Time millisecondsToRun:[
- 1000000 timesRepeat:[
- (16rFFEEDDCCBBAA998877665544332211 bitOr:16rFFFFFFFFFFFFFFFFFFFFFFFF)
- ]
+ 1000000 timesRepeat:[
+ (16rFFEEDDCCBBAA998877665544332211 bitOr:16rFFFFFFFFFFFFFFFFFFFFFFFF)
+ ]
].
"/ bitOr inherited via Integer: 1903 1856 1856
+ self assert:( 16r800008 signExtendedFromBit:4 ) = -8.
+ self assert:( 16r7FFF07 signExtendedFromBit:4 ) = 7.
+ self assert:( 16r7FFF0F signExtendedFromBit:4 ) = -1.
+
+ self assert:( 16rFFFFFF signExtendedFromBit:8 ) = -1.
+ self assert:( 16rFFFF7F signExtendedFromBit:8 ) = 16r7F.
+
+ self assert:( 16rFFFFFF signExtendedByteValue ) = -1.
+ self assert:( 16rFFFF7F signExtendedByteValue ) = 16r7F.
+
+ self assert:( 16rFFFF signExtendedShortValue ) = -1.
+ self assert:( 16r7FFF signExtendedShortValue ) = 16r7FFF.
+ self assert:( 16rFFFFFFFF signExtendedShortValue ) = -1.
+ self assert:( 16rFFFF7FFF signExtendedShortValue ) = 16r7FFF.
+ self assert:( 16rFFFFFFFFFF signExtendedShortValue ) = -1.
+ self assert:( 16rFFFFFF7FFF signExtendedShortValue ) = 16r7FFF.
+ self assert:( 16rFFFFFFFFFFFF signExtendedShortValue ) = -1.
+ self assert:( 16rFFFFFFFF7FFF signExtendedShortValue ) = 16r7FFF.
+
+ self assert:( 16rFFFFFFFF signExtendedLongValue ) = -1.
+ self assert:( 16r7FFFFFFF signExtendedLongValue ) = 2147483647.
+ self assert:( 16r80000000 signExtendedLongValue ) = -2147483648.
+ self assert:( 16rFFFFFFFFFFFF signExtendedLongValue ) = -1.
+ self assert:( 16rFFFF7FFFFFFF signExtendedLongValue ) = 2147483647.
+ self assert:( 16rFFFF80000000 signExtendedLongValue ) = -2147483648.
+ self assert:( 16rFFFFFFFFFFFFFFFF signExtendedLongValue ) = -1.
+ self assert:( 16rFFFFFFFF7FFFFFFF signExtendedLongValue ) = 2147483647.
+ self assert:( 16rFFFFFFFF80000000 signExtendedLongValue ) = -2147483648.
+
+ self assert:( 16rFFFFFFFFFFFFFFFF signExtendedLongLongValue ) = -1.
+ self assert:( 16r7FFFFFFFFFFFFFFF signExtendedLongLongValue ) = 16r7FFFFFFFFFFFFFFF.
+ self assert:( 16rFFFFFFFFFFFFFFFFFFFF signExtendedLongLongValue ) = -1.
+ self assert:( 16rFFFF7FFFFFFFFFFFFFFF signExtendedLongLongValue ) = 16r7FFFFFFFFFFFFFFF.
+
"
self basicNew testLargeBitOperations
"
- "Modified: / 4.6.1999 / 15:26:55 / cg"
+ "Modified: / 26-02-2016 / 19:47:25 / cg"
!
testLargeCompare
--- a/exept_regression.st Fri Feb 26 16:36:47 2016 +0000
+++ b/exept_regression.st Fri Mar 04 08:16:39 2016 +0000
@@ -59,7 +59,7 @@
"/ 'XMLCoderTests'
"/ 'ZipArchiveTests'
'ClassBuilderTests'
- 'CompilerTests2'
+ "/ 'CompilerTests2'
'ChangeSetTests'
'FilenameTests'
'ProjectDefinitionTests'
@@ -68,7 +68,7 @@
'MakefileTests'
'TSTreeTests'
'TSMultiTreeTests'
- 'VMCrashTests'
+ "/ 'VMCrashTests'
'ProcessTest'
'PipeStreamTest'
'JITTest'