--- 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 $'
! !