Merge jv
authorJan Vrany <jan.vrany@fit.cvut.cz>
Fri, 04 Mar 2016 08:16:39 +0000
branchjv
changeset 1483 8e5a0f125106
parent 1482 2c941c0061fb
child 1484 e5af485c693d
Merge
RegressionTests__FloatTest.st
RegressionTests__IntegerTest.st
exept_regression.st
--- 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'