Skip to content

Commit e0fed41

Browse files
[Chunked] Adding tests for chunks of count collection implementation
1 parent 505b573 commit e0fed41

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

Tests/SwiftAlgorithmsTests/ChunkedTests.swift

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,67 @@ final class ChunkedTests: XCTestCase {
7676
XCTAssertLazySequence(fruits.lazy.chunked(by: { $0.first == $1.first }))
7777
XCTAssertLazySequence(fruits.lazy.chunked(on: { $0.first }))
7878
}
79+
80+
81+
//===----------------------------------------------------------------------===//
82+
// Tests for `chunks(ofCount:)`
83+
//===----------------------------------------------------------------------===//
84+
func testChunksOfCount() {
85+
XCTAssertEqualSequences([Int]().chunks(ofCount: 1), [])
86+
XCTAssertEqualSequences([Int]().chunks(ofCount: 5), [])
87+
88+
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
89+
XCTAssertEqualSequences(collection.chunks(ofCount: 1),
90+
[[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]])
91+
XCTAssertEqualSequences(collection.chunks(ofCount: 3),
92+
[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]])
93+
XCTAssertEqualSequences(collection.chunks(ofCount: 5),
94+
[[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]])
95+
XCTAssertEqualSequences(collection.chunks(ofCount: 11),
96+
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])
97+
}
98+
99+
func testChunksOfCountBidirectional() {
100+
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
101+
102+
XCTAssertEqualSequences(collection.chunks(ofCount: 1).reversed(),
103+
[[10], [9], [8], [7], [6], [5], [4], [3], [2], [1]])
104+
XCTAssertEqualSequences(collection.chunks(ofCount: 3).reversed(),
105+
[[10], [7, 8, 9], [4, 5, 6], [1, 2, 3]])
106+
XCTAssertEqualSequences(collection.chunks(ofCount: 5).reversed(),
107+
[[6, 7, 8, 9, 10], [1, 2, 3, 4, 5]])
108+
XCTAssertEqualSequences(collection.chunks(ofCount: 11).reversed(),
109+
[[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]])
110+
}
111+
112+
func testChunksOfCountCount() {
113+
XCTAssertEqual([Int]().chunks(ofCount: 1).count, 0)
114+
XCTAssertEqual([Int]().chunks(ofCount: 5).count, 0)
115+
116+
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
117+
XCTAssertEqual(collection.chunks(ofCount: 1).count, 10)
118+
XCTAssertEqual(collection.chunks(ofCount: 3).count, 4)
119+
XCTAssertEqual(collection.chunks(ofCount: 5).count, 2)
120+
XCTAssertEqual(collection.chunks(ofCount: 11).count, 1)
121+
}
122+
123+
func testEmptyChunksTraversal() {
124+
let emptyChunks = [Int]().chunks(ofCount: 1)
125+
126+
validateIndexTraversals(emptyChunks)
127+
}
128+
129+
func testChunksOfCountTraversal() {
130+
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
131+
let chunks = collection.chunks(ofCount: 2)
132+
133+
validateIndexTraversals(chunks)
134+
}
135+
136+
func testChunksOfCountWithRemainderTraversal() {
137+
let collection = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
138+
let chunks = collection.chunks(ofCount: 3)
139+
140+
validateIndexTraversals(chunks)
141+
}
79142
}

0 commit comments

Comments
 (0)