--- a/Interval.st Sun Feb 10 14:51:33 2019 +0100
+++ b/Interval.st Sun Feb 10 14:52:03 2019 +0100
@@ -1,5 +1,3 @@
-"{ Encoding: utf8 }"
-
"
COPYRIGHT (c) 1989 by Claus Gittinger
All Rights Reserved
@@ -97,6 +95,7 @@
^ self new fromLiteralArrayEncoding:anArray.
! !
+
!Interval methodsFor:'accessing'!
at:index
@@ -475,6 +474,64 @@
!Interval methodsFor:'queries'!
+includes:anElement
+ "return true if anElement is in the interval (Numeric compare using =)"
+
+ |rest|
+
+ stop >= start ifTrue:[
+ (anElement between:start and:stop) ifFalse:[^ false].
+ ] ifFalse:[
+ (anElement between:stop and:start) ifFalse:[^ false].
+ ].
+ rest := (anElement - start) rem:step.
+ ^ rest = 0
+
+ "
+ (1 to:15) includes:0
+ (1 to:15) includes:16
+ (1 to:15) includes:1
+ (1 to:15) includes:15
+ (1 to:15) includes:5
+ (1 to:15) includes:14
+ (1 to:15) includes:4
+ (1 to:15) includes:4.0
+ (1 to:15) includes:4.4
+
+ (1 to:15 by:3) includes:0
+ (1 to:15 by:3) includes:16
+ (1 to:15 by:3) includes:1
+ (1 to:15 by:3) includes:15
+ (1 to:15 by:3) includes:5
+ (1 to:15 by:3) includes:4
+ (1 to:15 by:3) includes:13
+ (1 to:15 by:3) includes:14
+ (1 to:15 by:3) includes:4.0
+ (1 to:15 by:3) includes:4.4
+
+ (10 to:-10 by:-3) includes:11
+ (10 to:-10 by:-3) includes:10
+ (10 to:-10 by:-3) includes:9
+ (10 to:-10 by:-3) includes:8
+ (10 to:-10 by:-3) includes:7
+ (10 to:-10 by:-3) includes:4
+ (10 to:-10 by:-3) includes:0
+ (10 to:-10 by:-3) includes:-1
+ (10 to:-10 by:-3) includes:-2
+ (10 to:-10 by:-3) includes:-8
+ (10 to:-10 by:-3) includes:-9
+ (10 to:-10 by:-3) includes:-10
+ (10 to:-10 by:-3) includes:-11
+ (10 to:-10 by:-3) includes:-2.4
+
+ (-10 to:-20 by:-2) includes:-16
+ (-10 to:-20 by:-2) includes:-20
+ (-10 to:-20 by:-2) includes:-23
+ (-10 to:-20 by:-2) includes:-24
+
+ "
+!
+
isEmpty
"return true, if the receiver is empty"
@@ -656,66 +713,6 @@
"
! !
-!Interval methodsFor:'testing'!
-
-includes:anElement
- "return true if anElement is in the interval (Numeric compare using =)"
-
- |rest|
-
- stop >= start ifTrue:[
- (anElement between:start and:stop) ifFalse:[^ false].
- ] ifFalse:[
- (anElement between:stop and:start) ifFalse:[^ false].
- ].
- rest := (anElement - start) rem:step.
- ^ rest = 0
-
- "
- (1 to:15) includes:0
- (1 to:15) includes:16
- (1 to:15) includes:1
- (1 to:15) includes:15
- (1 to:15) includes:5
- (1 to:15) includes:14
- (1 to:15) includes:4
- (1 to:15) includes:4.0
- (1 to:15) includes:4.4
-
- (1 to:15 by:3) includes:0
- (1 to:15 by:3) includes:16
- (1 to:15 by:3) includes:1
- (1 to:15 by:3) includes:15
- (1 to:15 by:3) includes:5
- (1 to:15 by:3) includes:4
- (1 to:15 by:3) includes:13
- (1 to:15 by:3) includes:14
- (1 to:15 by:3) includes:4.0
- (1 to:15 by:3) includes:4.4
-
- (10 to:-10 by:-3) includes:11
- (10 to:-10 by:-3) includes:10
- (10 to:-10 by:-3) includes:9
- (10 to:-10 by:-3) includes:8
- (10 to:-10 by:-3) includes:7
- (10 to:-10 by:-3) includes:4
- (10 to:-10 by:-3) includes:0
- (10 to:-10 by:-3) includes:-1
- (10 to:-10 by:-3) includes:-2
- (10 to:-10 by:-3) includes:-8
- (10 to:-10 by:-3) includes:-9
- (10 to:-10 by:-3) includes:-10
- (10 to:-10 by:-3) includes:-11
- (10 to:-10 by:-3) includes:-2.4
-
- (-10 to:-20 by:-2) includes:-16
- (-10 to:-20 by:-2) includes:-20
- (-10 to:-20 by:-2) includes:-23
- (-10 to:-20 by:-2) includes:-24
-
- "
-! !
-
!Interval methodsFor:'visiting'!
acceptVisitor:aVisitor with:aParameter