fixed #> (-1234567890 > -10)
authorClaus Gittinger <cg@exept.de>
Fri, 16 Jan 1998 15:57:23 +0100
changeset 3178 649320240430
parent 3177 a94f43a8304c
child 3179 f22e94c6ae83
fixed #> (-1234567890 > -10)
LargeInt.st
LargeInteger.st
--- a/LargeInt.st	Fri Jan 16 15:56:03 1998 +0100
+++ b/LargeInt.st	Fri Jan 16 15:57:23 1998 +0100
@@ -85,6 +85,134 @@
        ].
        last := v.
    ]
+
+
+   test addition, subtraction:
+
+   SmallInteger maxVal                -> 1073741823
+   SmallInteger maxVal + 1            -> 1073741824
+   SmallInteger maxVal + 2            -> 1073741825
+   (SmallInteger maxVal + 2) - 2      -> 1073741823
+
+   SmallInteger minVal                -> -1073741824
+   SmallInteger minVal - 1            -> -1073741825
+   SmallInteger minVal - 2            -> -1073741826
+   (SmallInteger minVal - 2) + 2      -> -1073741824
+
+   1234567890 + 10                    -> 1234567900
+   1111111111 + 1111111111            -> 2222222222
+   1111111111 - 1111111111            -> 0
+   1111111111 - 2222222222            -> -1111111111
+
+   1111111111 * 2                     -> 2222222222
+   1111111111 * -2                    -> -2222222222
+
+   1111111111 * 1111111111            -> 1234567900987654321
+   1234567900987654321 // 1111111111  -> 1111111111
+   1234567900987654321 \\ 1111111111  -> 0
+   1234567900987654322 \\ 1111111111  -> 1
+   1234567900987654421 \\ 1111111111  -> 100
+
+
+   test comparison:
+
+   -1234567890 >  -1234567890         false
+   -1234567890 >= -1234567890         true
+   -1234567890 <  -1234567890         false
+   -1234567890 <= -1234567890         true
+   -1234567890 =  -1234567890         true
+   -1234567890 ~= -1234567890         false
+
+   -1234567890 >  -1234567891         true
+   -1234567890 >= -1234567891         true
+   -1234567890 <  -1234567891         false
+   -1234567890 <= -1234567891         false
+   -1234567890 =  -1234567891         false
+   -1234567890 ~= -1234567891         true
+
+   -1234567891 >  -1234567890         false
+   -1234567891 >= -1234567890         false
+   -1234567891 <  -1234567890         true
+   -1234567891 <= -1234567890         true
+   -1234567891 =  -1234567890         false
+   -1234567891 ~= -1234567890         true
+
+    1234567890 >  -1234567890         true
+    1234567890 >= -1234567890         true
+    1234567890 <  -1234567890         false
+    1234567890 <= -1234567890         false
+    1234567890 =  -1234567890         false
+    1234567890 ~= -1234567890         true
+
+   -1234567890 >  1234567890          false
+   -1234567890 >= 1234567890          false
+   -1234567890 <  1234567890          true
+   -1234567890 <= 1234567890          true
+   -1234567890 =  1234567890          false
+   -1234567890 ~= 1234567890          true
+
+    1234567890 >  1234567890          false
+    1234567890 >= 1234567890          true
+    1234567890 <  1234567890          false
+    1234567890 <= 1234567890          true
+    1234567890 =  1234567890          true
+    1234567890 ~= 1234567890          false
+
+   -1234567890 >  -10                 false
+   -1234567890 >= -10                 false
+   -1234567890 <  -10                 true
+   -1234567890 <= -10                 true
+   -1234567890 =  -10                 false
+   -1234567890 ~= -10                 true
+
+   -1234567890 >  10                  false
+   -1234567890 >= 10                  false
+   -1234567890 <  10                  true
+   -1234567890 <= 10                  true
+   -1234567890 =  10                  false
+   -1234567890 ~= 10                  true
+
+   -10 >  -1234567890                 true
+   -10 >= -1234567890                 true
+   -10 <  -1234567890                 false
+   -10 <= -1234567890                 false
+   -10 =  -1234567890                 false
+   -10 ~= -1234567890                 true
+
+    10 >  -1234567890                 true
+    10 >= -1234567890                 true
+    10 <  -1234567890                 false
+    10 <= -1234567890                 false
+    10 =  -1234567890                 false
+    10 ~= -1234567890                 true
+
+    1234567890 >  -10                 true  
+    1234567890 >= -10                 true  
+    1234567890 <  -10                 false  
+    1234567890 <= -10                 false  
+    1234567890 =  -10                 false  
+    1234567890 ~= -10                 true  
+
+    1234567890 >  10                  true
+    1234567890 >= 10                  true
+    1234567890 <  10                  false
+    1234567890 <= 10                  false
+    1234567890 =  10                  false
+    1234567890 ~= 10                  true
+
+   -10 >   1234567890                 false
+   -10 >=  1234567890                 false
+   -10 <   1234567890                 true
+   -10 <=  1234567890                 true
+   -10 =   1234567890                 false
+   -10 ~=  1234567890                 true
+
+    10 >   1234567890                 false
+    10 >=  1234567890                 false
+    10 <   1234567890                 true
+    10 <=  1234567890                 true
+    10 =   1234567890                 false
+    10 ~=  1234567890                 true
 "
 ! !
 
@@ -1059,7 +1187,9 @@
     "I am negative"
     (otherSign > 0) ifTrue:[^ true].
     (otherSign == 0) ifTrue:[^ true].
-    ^ (self absLess:aNumber) not
+    ^ (aNumber absLess:self)
+
+    "Modified: / 14.1.1998 / 12:51:42 / cg"
 !
 
 = aNumber
@@ -1097,7 +1227,9 @@
     "I am negative"
     (otherSign > 0) ifTrue:[^ false].
     (otherSign == 0) ifTrue:[^ false].
-    ^ (self absLess:aNumber) not
+    ^ (self absLess:aNumber)  
+
+    "Modified: / 14.1.1998 / 12:56:56 / cg"
 ! !
 
 !LargeInteger methodsFor:'double dispatching'!
@@ -2457,5 +2589,5 @@
 !LargeInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/Attic/LargeInt.st,v 1.62 1998-01-12 13:18:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/Attic/LargeInt.st,v 1.63 1998-01-16 14:57:23 cg Exp $'
 ! !
--- a/LargeInteger.st	Fri Jan 16 15:56:03 1998 +0100
+++ b/LargeInteger.st	Fri Jan 16 15:57:23 1998 +0100
@@ -85,6 +85,134 @@
        ].
        last := v.
    ]
+
+
+   test addition, subtraction:
+
+   SmallInteger maxVal                -> 1073741823
+   SmallInteger maxVal + 1            -> 1073741824
+   SmallInteger maxVal + 2            -> 1073741825
+   (SmallInteger maxVal + 2) - 2      -> 1073741823
+
+   SmallInteger minVal                -> -1073741824
+   SmallInteger minVal - 1            -> -1073741825
+   SmallInteger minVal - 2            -> -1073741826
+   (SmallInteger minVal - 2) + 2      -> -1073741824
+
+   1234567890 + 10                    -> 1234567900
+   1111111111 + 1111111111            -> 2222222222
+   1111111111 - 1111111111            -> 0
+   1111111111 - 2222222222            -> -1111111111
+
+   1111111111 * 2                     -> 2222222222
+   1111111111 * -2                    -> -2222222222
+
+   1111111111 * 1111111111            -> 1234567900987654321
+   1234567900987654321 // 1111111111  -> 1111111111
+   1234567900987654321 \\ 1111111111  -> 0
+   1234567900987654322 \\ 1111111111  -> 1
+   1234567900987654421 \\ 1111111111  -> 100
+
+
+   test comparison:
+
+   -1234567890 >  -1234567890         false
+   -1234567890 >= -1234567890         true
+   -1234567890 <  -1234567890         false
+   -1234567890 <= -1234567890         true
+   -1234567890 =  -1234567890         true
+   -1234567890 ~= -1234567890         false
+
+   -1234567890 >  -1234567891         true
+   -1234567890 >= -1234567891         true
+   -1234567890 <  -1234567891         false
+   -1234567890 <= -1234567891         false
+   -1234567890 =  -1234567891         false
+   -1234567890 ~= -1234567891         true
+
+   -1234567891 >  -1234567890         false
+   -1234567891 >= -1234567890         false
+   -1234567891 <  -1234567890         true
+   -1234567891 <= -1234567890         true
+   -1234567891 =  -1234567890         false
+   -1234567891 ~= -1234567890         true
+
+    1234567890 >  -1234567890         true
+    1234567890 >= -1234567890         true
+    1234567890 <  -1234567890         false
+    1234567890 <= -1234567890         false
+    1234567890 =  -1234567890         false
+    1234567890 ~= -1234567890         true
+
+   -1234567890 >  1234567890          false
+   -1234567890 >= 1234567890          false
+   -1234567890 <  1234567890          true
+   -1234567890 <= 1234567890          true
+   -1234567890 =  1234567890          false
+   -1234567890 ~= 1234567890          true
+
+    1234567890 >  1234567890          false
+    1234567890 >= 1234567890          true
+    1234567890 <  1234567890          false
+    1234567890 <= 1234567890          true
+    1234567890 =  1234567890          true
+    1234567890 ~= 1234567890          false
+
+   -1234567890 >  -10                 false
+   -1234567890 >= -10                 false
+   -1234567890 <  -10                 true
+   -1234567890 <= -10                 true
+   -1234567890 =  -10                 false
+   -1234567890 ~= -10                 true
+
+   -1234567890 >  10                  false
+   -1234567890 >= 10                  false
+   -1234567890 <  10                  true
+   -1234567890 <= 10                  true
+   -1234567890 =  10                  false
+   -1234567890 ~= 10                  true
+
+   -10 >  -1234567890                 true
+   -10 >= -1234567890                 true
+   -10 <  -1234567890                 false
+   -10 <= -1234567890                 false
+   -10 =  -1234567890                 false
+   -10 ~= -1234567890                 true
+
+    10 >  -1234567890                 true
+    10 >= -1234567890                 true
+    10 <  -1234567890                 false
+    10 <= -1234567890                 false
+    10 =  -1234567890                 false
+    10 ~= -1234567890                 true
+
+    1234567890 >  -10                 true  
+    1234567890 >= -10                 true  
+    1234567890 <  -10                 false  
+    1234567890 <= -10                 false  
+    1234567890 =  -10                 false  
+    1234567890 ~= -10                 true  
+
+    1234567890 >  10                  true
+    1234567890 >= 10                  true
+    1234567890 <  10                  false
+    1234567890 <= 10                  false
+    1234567890 =  10                  false
+    1234567890 ~= 10                  true
+
+   -10 >   1234567890                 false
+   -10 >=  1234567890                 false
+   -10 <   1234567890                 true
+   -10 <=  1234567890                 true
+   -10 =   1234567890                 false
+   -10 ~=  1234567890                 true
+
+    10 >   1234567890                 false
+    10 >=  1234567890                 false
+    10 <   1234567890                 true
+    10 <=  1234567890                 true
+    10 =   1234567890                 false
+    10 ~=  1234567890                 true
 "
 ! !
 
@@ -1059,7 +1187,9 @@
     "I am negative"
     (otherSign > 0) ifTrue:[^ true].
     (otherSign == 0) ifTrue:[^ true].
-    ^ (self absLess:aNumber) not
+    ^ (aNumber absLess:self)
+
+    "Modified: / 14.1.1998 / 12:51:42 / cg"
 !
 
 = aNumber
@@ -1097,7 +1227,9 @@
     "I am negative"
     (otherSign > 0) ifTrue:[^ false].
     (otherSign == 0) ifTrue:[^ false].
-    ^ (self absLess:aNumber) not
+    ^ (self absLess:aNumber)  
+
+    "Modified: / 14.1.1998 / 12:56:56 / cg"
 ! !
 
 !LargeInteger methodsFor:'double dispatching'!
@@ -2457,5 +2589,5 @@
 !LargeInteger class methodsFor:'documentation'!
 
 version
-    ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.62 1998-01-12 13:18:47 cg Exp $'
+    ^ '$Header: /cvs/stx/stx/libbasic/LargeInteger.st,v 1.63 1998-01-16 14:57:23 cg Exp $'
 ! !