Skip to content

Commit 7ecab1f

Browse files
Add Data slice insertion and deletion tests
1 parent 7bf00de commit 7ecab1f

File tree

1 file changed

+28
-0
lines changed

1 file changed

+28
-0
lines changed

TestFoundation/TestNSData.swift

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -508,6 +508,8 @@ class TestNSData: XCTestCase {
508508
("test_sliceHash", test_sliceHash),
509509
("test_slice_resize_growth", test_slice_resize_growth),
510510
// ("test_sliceEnumeration", test_sliceEnumeration),
511+
("test_sliceInsertion", test_sliceInsertion),
512+
("test_sliceDeletion", test_sliceDeletion),
511513
]
512514
}
513515

@@ -3952,5 +3954,31 @@ extension TestNSData {
39523954
XCTAssertEqual(Data(bytes: [0]), regionData[2]) //fails
39533955
}
39543956
*/
3957+
3958+
func test_sliceInsertion() {
3959+
// https://bugs.swift.org/browse/SR-5810
3960+
let baseData = Data([0, 1, 2, 3, 4, 5])
3961+
var sliceData = baseData[2..<4]
3962+
let sliceDataEndIndexBeforeInsertion = sliceData.endIndex
3963+
let elementToInsert: UInt8 = 0x07
3964+
sliceData.insert(elementToInsert, at: sliceData.startIndex)
3965+
XCTAssertEqual(sliceData.first, elementToInsert)
3966+
XCTAssertEqual(sliceData.startIndex, 2)
3967+
XCTAssertEqual(sliceDataEndIndexBeforeInsertion, 4)
3968+
XCTAssertEqual(sliceData.endIndex, sliceDataEndIndexBeforeInsertion + 1)
3969+
}
3970+
3971+
func test_sliceDeletion() {
3972+
// https://bugs.swift.org/browse/SR-5810
3973+
let baseData = Data([0, 1, 2, 3, 4, 5, 6, 7])
3974+
let sliceData = baseData[2..<6]
3975+
var mutableSliceData = sliceData
3976+
let numberOfElementsToDelete = 2
3977+
let subrangeToDelete = mutableSliceData.startIndex..<mutableSliceData.startIndex.advanced(by: numberOfElementsToDelete)
3978+
mutableSliceData.removeSubrange(subrangeToDelete)
3979+
XCTAssertEqual(sliceData[sliceData.startIndex + numberOfElementsToDelete], mutableSliceData.first)
3980+
XCTAssertEqual(mutableSliceData.startIndex, 2)
3981+
XCTAssertEqual(mutableSliceData.endIndex, sliceData.endIndex - numberOfElementsToDelete)
3982+
}
39553983
}
39563984

0 commit comments

Comments
 (0)