Skip to content

Commit 51785de

Browse files
authored
Add tests for Array::slice_as_chunks(_mut) (#185)
1 parent 4114c07 commit 51785de

1 file changed

Lines changed: 43 additions & 0 deletions

File tree

tests/mod.rs

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,49 @@ fn slice_as_mut_array() {
4949
assert_eq!(A::slice_as_mut_array(&mut [1, 2, 3]), None);
5050
}
5151

52+
#[test]
53+
fn slice_as_chunks() {
54+
type A = Array<u8, U2>;
55+
56+
let (slice_empty, rem_empty) = A::slice_as_chunks(&[]);
57+
assert!(slice_empty.is_empty());
58+
assert!(rem_empty.is_empty());
59+
60+
let (slice_one, rem_one) = A::slice_as_chunks(&[1]);
61+
assert!(slice_one.is_empty());
62+
assert_eq!(rem_one, &[1]);
63+
64+
let (slice_aligned, rem_aligned) = A::slice_as_chunks(&[1u8, 2]);
65+
assert_eq!(slice_aligned, &[Array([1u8, 2])]);
66+
assert_eq!(rem_aligned, &[]);
67+
68+
let (slice_unaligned, rem_unaligned) = A::slice_as_chunks(&[1u8, 2, 3]);
69+
assert_eq!(slice_unaligned, &[Array([1u8, 2])]);
70+
assert_eq!(rem_unaligned, &[3]);
71+
}
72+
73+
#[test]
74+
fn slice_as_chunks_mut() {
75+
type A = Array<u8, U2>;
76+
let mut input = [1u8, 2, 3];
77+
78+
let (slice_empty, rem_empty) = A::slice_as_chunks_mut(&mut []);
79+
assert!(slice_empty.is_empty());
80+
assert!(rem_empty.is_empty());
81+
82+
let (slice_one, rem_one) = A::slice_as_chunks_mut(&mut input[..1]);
83+
assert!(slice_one.is_empty());
84+
assert_eq!(rem_one, &[1]);
85+
86+
let (slice_aligned, rem_aligned) = A::slice_as_chunks_mut(&mut input[..2]);
87+
assert_eq!(slice_aligned, &[Array([1u8, 2])]);
88+
assert_eq!(rem_aligned, &[]);
89+
90+
let (slice_unaligned, rem_unaligned) = A::slice_as_chunks_mut(&mut input);
91+
assert_eq!(slice_unaligned, &[Array([1u8, 2])]);
92+
assert_eq!(rem_unaligned, &[3]);
93+
}
94+
5295
#[test]
5396
fn concat() {
5497
let prefix = Array::<u8, U2>::try_from(&EXAMPLE_SLICE[..2]).unwrap();

0 commit comments

Comments
 (0)