Skip to content

Commit d0b58d1

Browse files
committed
TestIndexSet: test remove(indexSet:)
1 parent 894428c commit d0b58d1

File tree

1 file changed

+23
-1
lines changed

1 file changed

+23
-1
lines changed

TestFoundation/TestIndexSet.swift

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ class TestIndexSet : XCTestCase {
139139
}
140140

141141
func test_removal() {
142-
let removalSet = NSMutableIndexSet(indexesIn: NSRange(location: 0, length: 10))
142+
var removalSet = NSMutableIndexSet(indexesIn: NSRange(location: 0, length: 10))
143143
removalSet.remove(0)
144144
removalSet.remove(in: NSRange(location: 9, length: 5))
145145
removalSet.remove(in: NSRange(location: 2, length: 4))
@@ -160,6 +160,28 @@ class TestIndexSet : XCTestCase {
160160

161161
expected = IndexSet()
162162
XCTAssertTrue(removalSet.isEqual(to: expected))
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))
163185
}
164186

165187
func test_addition() {

0 commit comments

Comments
 (0)