@@ -3,6 +3,9 @@ package scala.collection.immutable
3
3
import org .junit ._
4
4
import Assert ._
5
5
6
+ import scala .collection .Seq .empty
7
+ import scala .language .postfixOps
8
+ import scala .tools .testing .AssertUtil ._
6
9
import scala .util .AllocationTest
7
10
8
11
class IndexedSeqTest extends AllocationTest {
@@ -93,6 +96,48 @@ class IndexedSeqTest extends AllocationTest {
93
96
assertNotEquals(Range (0 ,1 ), new MyRange (0 , 1 ))
94
97
assertEquals(new MyRange (0 , 1 ), new MyRange (0 , 1 ))
95
98
}
99
+
100
+ @ Test def testforwardSliceEquals (): Unit = {
101
+
102
+ def generateTestIter = (0 to 10 ).view iterator
103
+
104
+
105
+ assertSameElements(empty toList, generateTestIter slice (3 , - 1 ))
106
+ assertSameElements(empty toList, generateTestIter slice (0 , 0 ))
107
+ assertSameElements(empty, generateTestIter slice (3 , 3 ))
108
+ assertSameElements(List (0 ) , generateTestIter slice (0 , 1 ))
109
+ assertSameElements(0 to 1 , generateTestIter slice (0 , 2 ))
110
+ assertSameElements(3 to 6 toList, generateTestIter slice(3 ,7 ))
111
+ assertSameElements(0 to 2 toList, generateTestIter slice (- 1 , 3 ))
112
+ assertSameElements(0 to 10 toList, generateTestIter slice (0 , 11 ))
113
+ assertSameElements(6 to 12 by 2 toList, generateTestIter slice (3 , 7 ) map (2 * _))
114
+ assertSameElements(6 to 12 by 2 toList, generateTestIter map (2 * _) slice (3 , 7 ))
115
+ assertSameElements(4 to 6 toList, generateTestIter slice (3 , 7 ) drop 1 )
116
+ assertSameElements(4 to 7 toList, generateTestIter drop 1 slice (3 , 7 ))
117
+ assertSameElements(4 to 5 toList, generateTestIter slice (3 , 7 ) slice (1 , 3 ))
118
+ assertSameElements(4 to 6 toList, generateTestIter slice (3 , 7 ) slice (1 , 10 ))
119
+ }
120
+
121
+ @ Test def testbackwardSliceEquals (): Unit = {
122
+
123
+ def generateTestIter = (0 to 10 ).view reverseIterator
124
+
125
+ assertSameElements(empty toList, generateTestIter slice (3 , - 1 ))
126
+ assertSameElements(empty toList, generateTestIter slice (3 , 2 ))
127
+ assertSameElements(empty, generateTestIter slice (0 , 0 ))
128
+ assertSameElements(empty, generateTestIter slice (3 , 3 ))
129
+ assertSameElements(List (10 ) , generateTestIter slice (0 , 1 ))
130
+ assertSameElements(10 to 9 by - 1 , generateTestIter slice (0 , 2 ))
131
+ assertSameElements(7 to 4 by - 1 toList, generateTestIter slice(3 ,7 ))
132
+ assertSameElements(10 to 8 by - 1 toList, generateTestIter slice (- 1 , 3 ))
133
+ assertSameElements(14 to 8 by - 2 toList, generateTestIter slice (3 , 7 ) map (2 * _))
134
+ assertSameElements(14 to 8 by - 2 toList, generateTestIter map (2 * _) slice (3 , 7 ))
135
+ assertSameElements(6 to 4 by - 1 toList, generateTestIter slice (3 , 7 ) drop 1 )
136
+ assertSameElements(6 to 3 by - 1 toList, generateTestIter drop 1 slice (3 , 7 ))
137
+ assertSameElements(6 to 5 by - 1 toList, generateTestIter slice (3 , 7 ) slice (1 , 3 ))
138
+ assertSameElements(6 to 4 by - 1 toList, generateTestIter slice (3 , 7 ) slice (1 , 10 ))
139
+ }
140
+
96
141
}
97
142
final class MyRange (val start : Int , val end : Int ) extends IndexedSeq [Int ] {
98
143
def apply (idx : Int ) = start + idx
0 commit comments