vecset_tests.rs

 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}