use super::UnionFind; #[test] fn empty() { let mut sets = UnionFind::::new(10); for i in 1..10 { assert_eq!(sets.find(i), i); } } #[test] fn transitive() { let mut sets = UnionFind::::new(10); sets.unify(3, 7); sets.unify(4, 2); assert_eq!(sets.find(7), sets.find(3)); assert_eq!(sets.find(2), sets.find(4)); assert_ne!(sets.find(3), sets.find(4)); sets.unify(7, 4); assert_eq!(sets.find(7), sets.find(3)); assert_eq!(sets.find(2), sets.find(4)); assert_eq!(sets.find(3), sets.find(4)); for i in [0, 1, 5, 6, 8, 9] { assert_eq!(sets.find(i), i); } }