v2 / vlib / v / depgraph / depgraph_test.v
73 lines · 70 sloc · 1.11 KB · 0c4eed60bb26b20829e6a56ffe6f99da36337230
Raw
1module depgraph
2
3fn test_resolve_has_deps_no_cyclic() {
4 mut g := new_dep_graph()
5 g.add('A', [])
6 g.add('B', [])
7 g.add('X', ['Y', 'G'])
8 g.add('C', [])
9 g.add('D', ['A', 'X'])
10 g.add('E', [])
11 g.add('F', [])
12 g.add('G', ['A'])
13 g.add('H', [])
14 g.add('Y', [])
15 resolved_graph := g.resolve()
16 assert resolved_graph.acyclic
17 assert resolved_graph.display() == ' * A
18 * B
19 * C
20 * E
21 * F
22 * H
23 * Y
24 * G -> A
25 * X -> Y
26 * X -> G
27 * D -> A
28 * D -> X'
29}
30
31fn test_resolve_has_deps_cyclic() {
32 mut g := new_dep_graph()
33 g.add('A', [])
34 g.add('B', [])
35 g.add('X', ['Y', 'G'])
36 g.add('C', [])
37 g.add('D', ['A', 'X'])
38 g.add('E', [])
39 g.add('F', [])
40 g.add('G', ['D'])
41 g.add('H', [])
42 g.add('Y', [])
43 resolved_graph := g.resolve()
44 assert !resolved_graph.acyclic
45 assert resolved_graph.display() == ' * A
46 * B
47 * C
48 * E
49 * F
50 * H
51 * Y
52 * X -> Y
53 * X -> G
54 * D -> A
55 * D -> X
56 * G -> D'
57}
58
59fn test_resolve_no_deps() {
60 mut g := new_dep_graph()
61 g.add('X', [])
62 g.add('A', [])
63 g.add('B', [])
64 g.add('C', [])
65 g.add('D', [])
66 resolved_graph := g.resolve()
67 assert resolved_graph.acyclic
68 assert resolved_graph.display() == ' * X
69 * A
70 * B
71 * C
72 * D'
73}
74