Skip to content

Commit 2745884

Browse files
committed
Add unit tests
1 parent d99716d commit 2745884

File tree

1 file changed

+85
-0
lines changed

1 file changed

+85
-0
lines changed

tests/collidea_test.rs

Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
use collidea::collidea::{CollideMap, CollideSet};
2+
3+
#[test]
4+
fn collide_map_test() {
5+
let size = 100;
6+
let mut map: CollideMap<String, i32> = CollideMap::new();
7+
8+
for i in 0..size {
9+
let key = i.to_string();
10+
map.insert(&key, i);
11+
}
12+
13+
for i in 0..size {
14+
let key = i.to_string();
15+
assert_eq!(map.get(&key).unwrap(), &i);
16+
}
17+
assert_eq!(map.len(), size as usize);
18+
}
19+
20+
#[test]
21+
fn collide_set_test() {
22+
let size = 100;
23+
let mut set: CollideSet<String> = CollideSet::new();
24+
25+
for i in 0..size {
26+
let element = i.to_string();
27+
set.insert(element);
28+
}
29+
assert_eq!(set.len(), size as usize);
30+
31+
for i in 0..size {
32+
let element = i.to_string();
33+
assert_eq!(set.contains(&element), true);
34+
assert_eq!(set.contains(&(i + size).to_string()), false);
35+
assert_eq!(set.remove(&element), true);
36+
}
37+
assert_eq!(set.len(), 0);
38+
}
39+
40+
#[test]
41+
fn collide_set_operator_test() {
42+
let size = 30;
43+
let a_start = 0;
44+
let b_start = size * 1 / 3;
45+
let a_end = size * 2 / 3;
46+
let b_end = size;
47+
48+
let mut set_a: CollideSet<String> = CollideSet::new();
49+
let mut set_b: CollideSet<String> = CollideSet::new();
50+
51+
for i in a_start..a_end {
52+
let t = i.to_string();
53+
set_a.insert(t);
54+
}
55+
for i in b_start..b_end {
56+
let t = i.to_string();
57+
set_b.insert(t);
58+
}
59+
60+
let intersection_a_b = set_a.intersection(&set_b);
61+
let intersection_b_a = set_b.intersection(&set_a);
62+
let union_a_b = set_a.union(&set_b);
63+
let union_b_a = set_b.union(&set_a);
64+
65+
assert_eq!(union_a_b.len(), size);
66+
assert_eq!(union_b_a.len(), size);
67+
assert_eq!(intersection_a_b.len(), a_end - b_start);
68+
assert_eq!(intersection_b_a.len(), a_end - b_start);
69+
70+
for i in a_start..b_end {
71+
let element = i.to_string();
72+
assert_eq!(set_a.contains(&element), i < a_end);
73+
assert_eq!(set_b.contains(&element), i >= b_start);
74+
assert_eq!(union_a_b.contains(&element), true);
75+
assert_eq!(union_b_a.contains(&element), true);
76+
assert_eq!(
77+
intersection_a_b.contains(&element),
78+
i >= b_start && i < a_end
79+
);
80+
assert_eq!(
81+
intersection_b_a.contains(&element),
82+
i >= b_start && i < a_end
83+
);
84+
}
85+
}

0 commit comments

Comments
 (0)