1use itertools::Itertools;
2
3pub(crate) fn are_slices_equal(a: &[usize], b: &[usize]) -> bool {
4 if a.len() != b.len() {
6 return false;
7 }
8
9 a.iter().zip_eq(b).fold(true, |acc, (a, b)| acc && a == b)
10}
11
12#[cfg(test)]
13mod tests {
14 use super::*;
15
16 #[test]
17 fn check_matching() {
18 assert!(are_slices_equal(&[], &[]));
19 assert!(are_slices_equal(&[1], &[1]));
20 assert!(are_slices_equal(&[1, 2, 3], &[1, 2, 3]));
21 }
22 #[test]
23 fn check_not_matching() {
24 assert!(!are_slices_equal(&[], &[1]));
25 assert!(!are_slices_equal(&[1], &[]));
26 assert!(!are_slices_equal(&[1], &[2]));
27 assert!(!are_slices_equal(&[1, 2, 3], &[1, 2, 4]));
28 assert!(!are_slices_equal(&[1, 2, 3], &[1, 2, 3, 4]));
29 }
30}