RegressionTests__IntegerTest.st
changeset 172 4007fa906cab
parent 151 56cceb5c0318
child 206 5afc9d56ef2c
--- a/RegressionTests__IntegerTest.st	Tue Nov 26 10:03:19 2002 +0100
+++ b/RegressionTests__IntegerTest.st	Wed Nov 27 11:14:11 2002 +0100
@@ -6,7 +6,7 @@
 	instanceVariableNames:''
 	classVariableNames:''
 	poolDictionaries:''
-	category:'Tests-Regression'
+	category:'tests-Regression'
 !
 
 
@@ -559,6 +559,10 @@
     "Created: / 4.6.1999 / 15:35:32 / cg"
 !
 
+num_16r80000000
+    ^ 16r80000000
+!
+
 num_1FFFFFFFFFFFFFFFF
     ^ 16r1FFFFFFFFFFFFFFFF
 
@@ -620,6 +624,30 @@
 
 !IntegerTest methodsFor:'tests'!
 
+doCompare:a againstGreater:b
+    self assert:(a < b).
+    self assert:(a <= b).
+    self assert:(a = b) not.
+    self assert:(a ~= b).
+    self assert:(a == b) not.
+    self assert:(a ~~ b).
+    self assert:(a > b) not.
+    self assert:(a >= b) not.
+
+    self assert:(a perform:#<   with:b).
+    self assert:(a perform:#<=  with:b).
+    self assert:(a perform:#=   with:b) not.
+    self assert:(a perform:#~=  with:b).
+    self assert:(a perform:#==  with:b) not.
+    self assert:(a perform:#~~  with:b).
+    self assert:(a perform:#>   with:b) not.
+    self assert:(a perform:#>=  with:b) not.
+
+    "
+     self basicNew doCompare:12 againstGreater:16r80000000
+    "
+!
+
 doTestAll
     "general conversion & arithmetic tests.
      Notice, the arithmetic tests are both performed via regular sends
@@ -645,6 +673,57 @@
     "Modified: / 31.10.2000 / 20:23:20 / cg"
 !
 
+testComparing
+    |a b|
+
+    a := 12.
+    b := 16r80000000.
+    self doCompare:a againstGreater:b.
+
+    a := 12.
+    b := 16r80000000.
+    self doCompare:a againstGreater:16r80000000.
+
+    a := 0.
+    self doCompare:a againstGreater:16r80000000.
+
+    a := -1.
+    self doCompare:a againstGreater:16r80000000.
+
+    a := 16r-80000000.
+    self doCompare:a againstGreater:16r80000000.
+
+    a := 16r-40000000.
+    self doCompare:a againstGreater:16r80000000.
+
+    a := 16r-40000000.
+    self doCompare:a againstGreater:16r40000000.
+
+    a := 16r-3FFFFFFF.
+    self doCompare:a againstGreater:16r3FFFFFFF.
+
+    a := 16r-40000000.
+    self doCompare:a againstGreater:16r3FFFFFFF.
+
+    a := 16r-3FFFFFFF.
+    self doCompare:a againstGreater:16r40000000.
+
+    "
+     self basicNew testComparing
+    "
+!
+
+testConstants
+    |t|
+
+    self assert:((t := self num_16r80000000) > 0).
+    self assert:((t := self num_16r80000000) = 16r80000000).
+
+    "
+     self basicNew testConstants
+    "
+!
+
 testDivision
     |a b op rslt|