Add tests for predecessor-aware VecGraph
mode · rust-lang/rust@523fe2b (original) (raw)
`@@ -18,10 +18,18 @@ fn create_graph() -> VecGraph {
`
18
18
`VecGraph::new(7, vec![(0, 1), (1, 2), (1, 3), (3, 4), (5, 1)])
`
19
19
`}
`
20
20
``
``
21
`+
fn create_graph_with_back_refs() -> VecGraph<usize, true> {
`
``
22
`+
// Same as above
`
``
23
`+
VecGraph::new(7, vec![(0, 1), (1, 2), (1, 3), (3, 4), (5, 1)])
`
``
24
`+
}
`
``
25
+
21
26
`#[test]
`
22
27
`fn num_nodes() {
`
23
28
`let graph = create_graph();
`
24
29
`assert_eq!(graph.num_nodes(), 7);
`
``
30
+
``
31
`+
let graph = create_graph_with_back_refs();
`
``
32
`+
assert_eq!(graph.num_nodes(), 7);
`
25
33
`}
`
26
34
``
27
35
`#[test]
`
`@@ -34,11 +42,36 @@ fn successors() {
`
34
42
`assert_eq!(graph.successors(4), &[] as &[usize]);
`
35
43
`assert_eq!(graph.successors(5), &[1]);
`
36
44
`assert_eq!(graph.successors(6), &[] as &[usize]);
`
``
45
+
``
46
`+
let graph = create_graph_with_back_refs();
`
``
47
`+
assert_eq!(graph.successors(0), &[1]);
`
``
48
`+
assert_eq!(graph.successors(1), &[2, 3]);
`
``
49
`+
assert_eq!(graph.successors(2), &[] as &[usize]);
`
``
50
`+
assert_eq!(graph.successors(3), &[4]);
`
``
51
`+
assert_eq!(graph.successors(4), &[] as &[usize]);
`
``
52
`+
assert_eq!(graph.successors(5), &[1]);
`
``
53
`+
assert_eq!(graph.successors(6), &[] as &[usize]);
`
``
54
`+
}
`
``
55
+
``
56
`+
#[test]
`
``
57
`+
fn predecessors() {
`
``
58
`+
let graph = create_graph_with_back_refs();
`
``
59
`+
assert_eq!(graph.predecessors(0), &[]);
`
``
60
`+
assert_eq!(graph.predecessors(1), &[0, 5]);
`
``
61
`+
assert_eq!(graph.predecessors(2), &[1]);
`
``
62
`+
assert_eq!(graph.predecessors(3), &[1]);
`
``
63
`+
assert_eq!(graph.predecessors(4), &[3]);
`
``
64
`+
assert_eq!(graph.predecessors(5), &[]);
`
``
65
`+
assert_eq!(graph.predecessors(6), &[]);
`
37
66
`}
`
38
67
``
39
68
`#[test]
`
40
69
`fn dfs() {
`
41
70
`let graph = create_graph();
`
42
71
`let dfs: Vec<_> = graph::depth_first_search(&graph, 0).collect();
`
43
72
`assert_eq!(dfs, vec![0, 1, 3, 4, 2]);
`
``
73
+
``
74
`+
let graph = create_graph_with_back_refs();
`
``
75
`+
let dfs: Vec<_> = graph::depth_first_search(&graph, 0).collect();
`
``
76
`+
assert_eq!(dfs, vec![0, 1, 3, 4, 2]);
`
44
77
`}
`