@@ -139,20 +139,49 @@ class TestIndexSet : XCTestCase {
139
139
}
140
140
141
141
func test_removal( ) {
142
- let removalSet = NSMutableIndexSet ( indexesIn: NSRange ( location: 0 , length: 10 ) )
142
+ var removalSet = NSMutableIndexSet ( indexesIn: NSRange ( location: 0 , length: 10 ) )
143
143
removalSet. remove ( 0 )
144
144
removalSet. remove ( in: NSRange ( location: 9 , length: 5 ) )
145
145
removalSet. remove ( in: NSRange ( location: 2 , length: 4 ) )
146
146
XCTAssertEqual ( removalSet. count, 4 )
147
147
XCTAssertEqual ( removalSet. firstIndex, 1 )
148
148
XCTAssertEqual ( removalSet. lastIndex, 8 )
149
149
150
- var additionSet = IndexSet ( )
151
- additionSet. insert ( 1 )
152
- additionSet. insert ( integersIn: 6 ..< 9 )
150
+ var expected = IndexSet ( )
151
+ expected. insert ( 1 )
152
+ expected. insert ( integersIn: 6 ..< 9 )
153
+ XCTAssertTrue ( removalSet. isEqual ( to: expected) )
154
+
155
+ // Removing a non-existent element has no effect
156
+ removalSet. remove ( 9 )
157
+ XCTAssertTrue ( removalSet. isEqual ( to: expected) )
158
+
159
+ removalSet. removeAllIndexes ( )
153
160
154
- XCTAssertTrue ( removalSet. isEqual ( to: additionSet) )
161
+ expected = IndexSet ( )
162
+ XCTAssertTrue ( removalSet. isEqual ( to: expected) )
155
163
164
+ // Set removal
165
+ removalSet = NSMutableIndexSet ( indexesIn: NSRange ( location: 0 , length: 10 ) )
166
+ removalSet. remove ( IndexSet ( integersIn: 8 ..< 11 ) )
167
+ removalSet. remove ( IndexSet ( integersIn: 0 ..< 2 ) )
168
+ removalSet. remove ( IndexSet ( integersIn: 4 ..< 6 ) )
169
+ XCTAssertEqual ( removalSet. count, 4 )
170
+ XCTAssertEqual ( removalSet. firstIndex, 2 )
171
+ XCTAssertEqual ( removalSet. lastIndex, 7 )
172
+
173
+ expected = IndexSet ( )
174
+ expected. insert ( integersIn: 2 ..< 4 )
175
+ expected. insert ( integersIn: 6 ..< 8 )
176
+ XCTAssertTrue ( removalSet. isEqual ( to: expected) )
177
+
178
+ // Removing an empty set has no effect
179
+ removalSet. remove ( IndexSet ( ) )
180
+ XCTAssertTrue ( removalSet. isEqual ( to: expected) )
181
+
182
+ // Removing non-existent elements has no effect
183
+ removalSet. remove ( IndexSet ( integersIn: 0 ..< 2 ) )
184
+ XCTAssertTrue ( removalSet. isEqual ( to: expected) )
156
185
}
157
186
158
187
func test_addition( ) {
0 commit comments