hypergraph 1.3.9

Hypergraph is data structure library to create a directed hypergraph in which an hyperedge can join any number of vertices.
Documentation
use itertools::Itertools;

pub(crate) fn are_slices_equal(a: &[usize], b: &[usize]) -> bool {
    // Early guard if lengths are different.
    if a.len() != b.len() {
        return false;
    }

    a.iter().zip_eq(b).fold(true, |acc, (a, b)| acc && a == b)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn check_matching() {
        assert!(are_slices_equal(&[], &[]));
        assert!(are_slices_equal(&[1], &[1]));
        assert!(are_slices_equal(&[1, 2, 3], &[1, 2, 3]));
    }
    #[test]
    fn check_not_matching() {
        assert!(!are_slices_equal(&[], &[1]));
        assert!(!are_slices_equal(&[1], &[]));
        assert!(!are_slices_equal(&[1], &[2]));
        assert!(!are_slices_equal(&[1, 2, 3], &[1, 2, 4]));
        assert!(!are_slices_equal(&[1, 2, 3], &[1, 2, 3, 4]));
    }
}