use std::hash::Hash;
use crate::CustomSet;
pub fn deep_equals<T: Eq + Hash + Clone>(a: &CustomSet<T>, b: &CustomSet<T>) -> bool {
a.equals(b)
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_deep_equals_basic() {
let a = CustomSet::from(vec![1, 2, 3]);
let b = CustomSet::from(vec![3, 2, 1]);
assert!(deep_equals(&a, &b));
}
#[test]
fn test_deep_equals_nested() {
let inner1 = CustomSet::from(vec!['a', 'b']);
let inner2 = CustomSet::from(vec!['b', 'a']);
let a = CustomSet::from(vec![inner1.clone()]);
let b = CustomSet::from(vec![inner2.clone()]);
assert!(a.equals(&b));
}
}