Skip to content

Commit 60fb045

Browse files
[Chunked] Minor adjustments on tests
1 parent afac704 commit 60fb045

File tree

2 files changed

+30
-14
lines changed

2 files changed

+30
-14
lines changed

Sources/Algorithms/Chunked.swift

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ where Base: RandomAccessCollection {
404404
// have a variadic count. So in order to simplify and avoid another
405405
// calculation of offsets(that is already done at `index(before:)`)
406406
// we just move one position already so the index can be calculated
407-
// assuming all chunks have the same size.
407+
// since all remaining chunks have the same size.
408408
if i.baseRange.lowerBound == base.endIndex {
409409
formIndex(before: &idx)
410410
distance += 1
@@ -420,7 +420,8 @@ where Base: RandomAccessCollection {
420420
}
421421

422422
// Helper to compute index(offsetBy:) index.
423-
internal func makeOffsetIndex(
423+
@inline(__always)
424+
private func makeOffsetIndex(
424425
from i: Index, baseBound: Base.Index, distance: Int
425426
) -> Index {
426427
let baseStartIdx = base.index(

Tests/SwiftAlgorithmsTests/ChunkedTests.swift

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -85,28 +85,36 @@ final class ChunkedTests: XCTestCase {
8585
XCTAssertEqualSequences([Int]().chunks(ofCount: 1), [])
8686
XCTAssertEqualSequences([Int]().chunks(ofCount: 5), [])
8787

88-
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
89-
XCTAssertEqualSequences(collection.chunks(ofCount: 1),
88+
let collection1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
89+
XCTAssertEqualSequences(collection1.chunks(ofCount: 1),
9090
[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])
91-
XCTAssertEqualSequences(collection.chunks(ofCount: 3),
91+
XCTAssertEqualSequences(collection1.chunks(ofCount: 3),
9292
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]])
93-
XCTAssertEqualSequences(collection.chunks(ofCount: 5),
93+
XCTAssertEqualSequences(collection1.chunks(ofCount: 5),
9494
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
95-
XCTAssertEqualSequences(collection.chunks(ofCount: 11),
95+
XCTAssertEqualSequences(collection1.chunks(ofCount: 11),
9696
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])
97+
98+
let collection2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
99+
XCTAssertEqualSequences(collection2.chunks(ofCount: 3),
100+
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11]])
97101
}
98102

99103
func testChunksOfCountBidirectional() {
100-
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
104+
let collection1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
101105

102-
XCTAssertEqualSequences(collection.chunks(ofCount: 1).reversed(),
106+
XCTAssertEqualSequences(collection1.chunks(ofCount: 1).reversed(),
103107
[[10], [9], [8], [7], [6], [5], [4], [3], [2], [1]])
104-
XCTAssertEqualSequences(collection.chunks(ofCount: 3).reversed(),
108+
XCTAssertEqualSequences(collection1.chunks(ofCount: 3).reversed(),
105109
[[10], [7, 8, 9], [4, 5, 6], [1, 2, 3]])
106-
XCTAssertEqualSequences(collection.chunks(ofCount: 5).reversed(),
110+
XCTAssertEqualSequences(collection1.chunks(ofCount: 5).reversed(),
107111
[[6, 7, 8, 9, 10], [1, 2, 3, 4, 5]])
108-
XCTAssertEqualSequences(collection.chunks(ofCount: 11).reversed(),
112+
XCTAssertEqualSequences(collection1.chunks(ofCount: 11).reversed(),
109113
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])
114+
115+
let collection2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
116+
XCTAssertEqualSequences(collection2.chunks(ofCount: 3).reversed(),
117+
[[10, 11], [7, 8, 9], [4, 5, 6], [1, 2, 3]])
110118
}
111119

112120
func testChunksOfCountCount() {
@@ -123,7 +131,7 @@ final class ChunkedTests: XCTestCase {
123131
XCTAssertEqual(collection2.chunks(ofCount: 9).count, 6)
124132
}
125133

126-
func testEmptyChunksTraversal() {
134+
func testEmptyChunksOfCountTraversal() {
127135
let emptyChunks = [Int]().chunks(ofCount: 1)
128136

129137
validateIndexTraversals(emptyChunks)
@@ -136,10 +144,17 @@ final class ChunkedTests: XCTestCase {
136144
validateIndexTraversals(chunks)
137145
}
138146

139-
func testChunksOfCountWithRemainderTraversal() {
147+
func testChunksOfCountWithSingleRemainderTraversal() {
140148
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
141149
let chunks = collection.chunks(ofCount: 3)
142150

143151
validateIndexTraversals(chunks)
144152
}
153+
154+
func testChunksOfCountWithRemainder() {
155+
let collection2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
156+
let chunks = collection2.chunks(ofCount: 3)
157+
158+
validateIndexTraversals(chunks)
159+
}
145160
}

0 commit comments

Comments
 (0)