Skip to content

Commit 9c62455

Browse files
committed
Improve test coverage of {Chunks,RChunks,RChunksMut}::{next,next_back}
1 parent b8abd55 commit 9c62455

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

library/core/tests/slice.rs

+102
Original file line numberDiff line numberDiff line change
@@ -249,6 +249,40 @@ fn test_chunks_nth() {
249249
assert_eq!(c2.next(), None);
250250
}
251251

252+
#[test]
253+
fn test_chunks_next() {
254+
let v = [0, 1, 2, 3, 4, 5];
255+
let mut c = v.chunks(2);
256+
assert_eq!(c.next().unwrap(), &[0, 1]);
257+
assert_eq!(c.next().unwrap(), &[2, 3]);
258+
assert_eq!(c.next().unwrap(), &[4, 5]);
259+
assert_eq!(c.next(), None);
260+
261+
let v = [0, 1, 2, 3, 4, 5, 6, 7];
262+
let mut c = v.chunks(3);
263+
assert_eq!(c.next().unwrap(), &[0, 1, 2]);
264+
assert_eq!(c.next().unwrap(), &[3, 4, 5]);
265+
assert_eq!(c.next().unwrap(), &[6, 7]);
266+
assert_eq!(c.next(), None);
267+
}
268+
269+
#[test]
270+
fn test_chunks_next_back() {
271+
let v = [0, 1, 2, 3, 4, 5];
272+
let mut c = v.chunks(2);
273+
assert_eq!(c.next_back().unwrap(), &[4, 5]);
274+
assert_eq!(c.next_back().unwrap(), &[2, 3]);
275+
assert_eq!(c.next_back().unwrap(), &[0, 1]);
276+
assert_eq!(c.next_back(), None);
277+
278+
let v = [0, 1, 2, 3, 4, 5, 6, 7];
279+
let mut c = v.chunks(3);
280+
assert_eq!(c.next_back().unwrap(), &[6, 7]);
281+
assert_eq!(c.next_back().unwrap(), &[3, 4, 5]);
282+
assert_eq!(c.next_back().unwrap(), &[0, 1, 2]);
283+
assert_eq!(c.next_back(), None);
284+
}
285+
252286
#[test]
253287
fn test_chunks_nth_back() {
254288
let v: &[i32] = &[0, 1, 2, 3, 4, 5];
@@ -807,6 +841,40 @@ fn test_rchunks_nth_back() {
807841
assert_eq!(c2.next_back(), None);
808842
}
809843

844+
#[test]
845+
fn test_rchunks_next() {
846+
let v = [0, 1, 2, 3, 4, 5];
847+
let mut c = v.rchunks(2);
848+
assert_eq!(c.next().unwrap(), &[4, 5]);
849+
assert_eq!(c.next().unwrap(), &[2, 3]);
850+
assert_eq!(c.next().unwrap(), &[0, 1]);
851+
assert_eq!(c.next(), None);
852+
853+
let v = [0, 1, 2, 3, 4, 5, 6, 7];
854+
let mut c = v.rchunks(3);
855+
assert_eq!(c.next().unwrap(), &[5, 6, 7]);
856+
assert_eq!(c.next().unwrap(), &[2, 3, 4]);
857+
assert_eq!(c.next().unwrap(), &[0, 1]);
858+
assert_eq!(c.next(), None);
859+
}
860+
861+
#[test]
862+
fn test_rchunks_next_back() {
863+
let v = [0, 1, 2, 3, 4, 5];
864+
let mut c = v.rchunks(2);
865+
assert_eq!(c.next_back().unwrap(), &[0, 1]);
866+
assert_eq!(c.next_back().unwrap(), &[2, 3]);
867+
assert_eq!(c.next_back().unwrap(), &[4, 5]);
868+
assert_eq!(c.next_back(), None);
869+
870+
let v = [0, 1, 2, 3, 4, 5, 6, 7];
871+
let mut c = v.rchunks(3);
872+
assert_eq!(c.next_back().unwrap(), &[0, 1]);
873+
assert_eq!(c.next_back().unwrap(), &[2, 3, 4]);
874+
assert_eq!(c.next_back().unwrap(), &[5, 6, 7]);
875+
assert_eq!(c.next_back(), None);
876+
}
877+
810878
#[test]
811879
fn test_rchunks_last() {
812880
let v: &[i32] = &[0, 1, 2, 3, 4, 5];
@@ -872,6 +940,40 @@ fn test_rchunks_mut_nth_back() {
872940
assert_eq!(c2.next_back(), None);
873941
}
874942

943+
#[test]
944+
fn test_rchunks_mut_next() {
945+
let mut v = [0, 1, 2, 3, 4, 5];
946+
let mut c = v.rchunks_mut(2);
947+
assert_eq!(c.next().unwrap(), &mut [4, 5]);
948+
assert_eq!(c.next().unwrap(), &mut [2, 3]);
949+
assert_eq!(c.next().unwrap(), &mut [0, 1]);
950+
assert_eq!(c.next(), None);
951+
952+
let mut v = [0, 1, 2, 3, 4, 5, 6, 7];
953+
let mut c = v.rchunks_mut(3);
954+
assert_eq!(c.next().unwrap(), &mut [5, 6, 7]);
955+
assert_eq!(c.next().unwrap(), &mut [2, 3, 4]);
956+
assert_eq!(c.next().unwrap(), &mut [0, 1]);
957+
assert_eq!(c.next(), None);
958+
}
959+
960+
#[test]
961+
fn test_rchunks_mut_next_back() {
962+
let mut v = [0, 1, 2, 3, 4, 5];
963+
let mut c = v.rchunks_mut(2);
964+
assert_eq!(c.next_back().unwrap(), &mut [0, 1]);
965+
assert_eq!(c.next_back().unwrap(), &mut [2, 3]);
966+
assert_eq!(c.next_back().unwrap(), &mut [4, 5]);
967+
assert_eq!(c.next_back(), None);
968+
969+
let mut v = [0, 1, 2, 3, 4, 5, 6, 7];
970+
let mut c = v.rchunks_mut(3);
971+
assert_eq!(c.next_back().unwrap(), &mut [0, 1]);
972+
assert_eq!(c.next_back().unwrap(), &mut [2, 3, 4]);
973+
assert_eq!(c.next_back().unwrap(), &mut [5, 6, 7]);
974+
assert_eq!(c.next_back(), None);
975+
}
976+
875977
#[test]
876978
fn test_rchunks_mut_last() {
877979
let v: &mut [i32] = &mut [0, 1, 2, 3, 4, 5];

0 commit comments

Comments
 (0)