1use super::vecset::VecSet;
2
3#[test]
4fn test_insert_and_contains() {
5 let mut set = VecSet::new();
6 assert!(set.insert(1));
7 assert!(set.insert(2));
8 assert!(!set.insert(1));
9 assert!(set.contains(&1));
10 assert!(set.contains(&2));
11 assert!(!set.contains(&3));
12 assert_eq!(set.len(), 2);
13}
14
15#[test]
16fn test_remove() {
17 let mut set = VecSet::new();
18 set.insert(1);
19 set.insert(2);
20 set.insert(3);
21 assert!(set.remove(&2));
22 assert!(!set.remove(&2));
23 assert!(!set.contains(&2));
24 assert_eq!(set.len(), 2);
25}
26
27#[test]
28fn test_iteration_order() {
29 let mut set = VecSet::new();
30 set.insert("c");
31 set.insert("a");
32 set.insert("b");
33 let items: Vec<_> = set.iter().copied().collect();
34 assert_eq!(items, vec!["c", "a", "b"]);
35}
36
37#[test]
38fn test_into_iter() {
39 let mut set = VecSet::new();
40 set.insert(10);
41 set.insert(20);
42 let items: Vec<_> = set.into_iter().collect();
43 assert_eq!(items, vec![10, 20]);
44}
45
46#[test]
47fn test_retain() {
48 let mut set = VecSet::new();
49 set.insert(1);
50 set.insert(2);
51 set.insert(3);
52 set.insert(4);
53 set.retain(|x| x % 2 == 0);
54 assert_eq!(set.len(), 2);
55 assert!(set.contains(&2));
56 assert!(set.contains(&4));
57}