--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/Magnitude.st Fri Jul 16 11:39:45 1993 +0200
@@ -0,0 +1,102 @@
+"
+ COPYRIGHT (c) 1988-93 by Claus Gittinger
+ All Rights Reserved
+
+ This software is furnished under a license and may be used
+ only in accordance with the terms of that license and with the
+ inclusion of the above copyright notice. This software may not
+ be provided or otherwise made available to, or used by, any
+ other person. No title to or ownership of the software is
+ hereby transferred.
+"
+
+Object subclass:#Magnitude
+ instanceVariableNames:''
+ classVariableNames:''
+ poolDictionaries:''
+ category:'Magnitude-General'
+!
+
+Magnitude comment:'
+
+COPYRIGHT (c) 1988-93 by Claus Gittinger
+ All Rights Reserved
+
+This is an abstract class definining common methods for
+Objects which can be compared by a kind of greater realation.
+
+%W% %E%
+'!
+
+!Magnitude methodsFor:'comparing'!
+
+> aMagnitude
+ "Compare the receiver with the argument and return true if the
+ receiver is greater than the argument. Otherwise return false."
+
+ ^ self subclassResponsibility
+!
+
+= aMagnitude
+ "Compare the receiver with the argument and return true if the
+ receiver is equal to the argument. Otherwise return false."
+
+ ^ self subclassResponsibility
+!
+
+<= aMagnitude
+ "Compare the receiver with the argument and return true if the
+ receiver is less than or equal to the argument. Otherwise return false."
+
+ ^ (self > aMagnitude) not
+!
+
+< aMagnitude
+ "Compare the receiver with the argument and return true if the
+ receiver is less than the argument. Otherwise return false."
+
+ ^ (aMagnitude > self)
+!
+
+>= aMagnitude
+ "Compare the receiver with the argument and return true if the
+ receiver is greater than or equal to the argument.
+ Otherwise return false."
+
+ ^ (aMagnitude > self) not
+! !
+
+!Magnitude methodsFor:'testing'!
+
+between:min and:max
+ "return whether the receiver is less than or equal to the argument max
+ and greater than or equal to the argument min."
+
+ (self < min) ifTrue:[^ false].
+ (self > max) ifTrue:[^ false].
+ ^ true
+!
+
+in:anInterval
+ "return whether the receiver is within the interval bounds"
+
+ (self < anInterval start) ifTrue:[^ false].
+ (self > anInterval stop) ifTrue:[^ false].
+ ^ true
+! !
+
+!Magnitude methodsFor:'misc'!
+
+min:aMagnitude
+ "return the receiver or the argument, whichever has lesser magnitude"
+
+ (self < aMagnitude) ifTrue:[^ self].
+ ^ aMagnitude
+!
+
+max:aMagnitude
+ "return the receiver or the argument, whichever has greater magnitude"
+
+ (self > aMagnitude) ifTrue:[^ self].
+ ^ aMagnitude
+! !