-
Notifications
You must be signed in to change notification settings - Fork 544
Expand file tree
/
Copy pathtest_template.tera
More file actions
60 lines (60 loc) · 2.75 KB
/
test_template.tera
File metadata and controls
60 lines (60 loc) · 2.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
use custom_set::CustomSet;
{% for test in cases %}
#[test]
{% if loop.index != 1 -%}
#[ignore]
{% endif -%}
fn {{ test.description | slugify | replace(from="-", to="_") }}() {
{%- if test.property == "empty" %}
let set = CustomSet::<i32>::new(&{{ test.input.set | json_encode() }});
assert!(
{%- if not test.expected -%} ! {%- endif -%}
set.is_empty());
{%- elif test.property == "contains" %}
let set = CustomSet::<i32>::new(&{{ test.input.set | json_encode() }});
assert!(
{%- if not test.expected -%} ! {%- endif -%}
set.contains(&{{ test.input.element }}));
{%- elif test.property == "subset" %}
let set_1 = CustomSet::<i32>::new(&{{ test.input.set1 | json_encode() }});
let set_2 = CustomSet::<i32>::new(&{{ test.input.set2 | json_encode() }});
assert!(
{%- if not test.expected -%} ! {%- endif -%}
set_1.is_subset(&set_2));
{%- elif test.property == "disjoint" %}
let set_1 = CustomSet::<i32>::new(&{{ test.input.set1 | json_encode() }});
let set_2 = CustomSet::<i32>::new(&{{ test.input.set2 | json_encode() }});
assert!(
{%- if not test.expected -%} ! {%- endif -%}
set_1.is_disjoint(&set_2));
{%- elif test.property == "equal" %}
let set_1 = CustomSet::<i32>::new(&{{ test.input.set1 | json_encode() }});
let set_2 = CustomSet::<i32>::new(&{{ test.input.set2 | json_encode() }});
{% if test.expected -%}
assert_eq!(set_1, set_2);
{%- else -%}
assert_ne!(set_1, set_2);
{%- endif %}
{%- elif test.property == "add" %}
let mut set = CustomSet::<i32>::new(&{{ test.input.set | json_encode() }});
set.add({{ test.input.element }});
let expected = CustomSet::<i32>::new(&{{ test.expected | json_encode() }});
assert_eq!(set, expected);
{%- elif test.property == "intersection" %}
let set_1 = CustomSet::<i32>::new(&{{ test.input.set1 | json_encode() }});
let set_2 = CustomSet::<i32>::new(&{{ test.input.set2 | json_encode() }});
let expected = CustomSet::<i32>::new(&{{ test.expected | json_encode() }});
assert_eq!(set_1.intersection(&set_2), expected);
{%- elif test.property == "difference" %}
let set_1 = CustomSet::<i32>::new(&{{ test.input.set1 | json_encode() }});
let set_2 = CustomSet::<i32>::new(&{{ test.input.set2 | json_encode() }});
let expected = CustomSet::<i32>::new(&{{ test.expected | json_encode() }});
assert_eq!(set_1.difference(&set_2), expected);
{%- elif test.property == "union" %}
let set_1 = CustomSet::<i32>::new(&{{ test.input.set1 | json_encode() }});
let set_2 = CustomSet::<i32>::new(&{{ test.input.set2 | json_encode() }});
let expected = CustomSet::<i32>::new(&{{ test.expected | json_encode() }});
assert_eq!(set_1.union(&set_2), expected);
{%- endif %}
}
{% endfor -%}