Skip to content

Commit

Permalink
Add tests for predecessor-aware VecGraph mode
Browse files Browse the repository at this point in the history
  • Loading branch information
WaffleLapkin committed Apr 18, 2024
1 parent fa134b5 commit 523fe2b
Showing 1 changed file with 33 additions and 0 deletions.
33 changes: 33 additions & 0 deletions compiler/rustc_data_structures/src/graph/vec_graph/tests.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,18 @@ fn create_graph() -> VecGraph<usize> {
VecGraph::new(7, vec![(0, 1), (1, 2), (1, 3), (3, 4), (5, 1)])
}

fn create_graph_with_back_refs() -> VecGraph<usize, true> {
// Same as above
VecGraph::new(7, vec![(0, 1), (1, 2), (1, 3), (3, 4), (5, 1)])
}

#[test]
fn num_nodes() {
let graph = create_graph();
assert_eq!(graph.num_nodes(), 7);

let graph = create_graph_with_back_refs();
assert_eq!(graph.num_nodes(), 7);
}

#[test]
Expand All @@ -34,11 +42,36 @@ fn successors() {
assert_eq!(graph.successors(4), &[] as &[usize]);
assert_eq!(graph.successors(5), &[1]);
assert_eq!(graph.successors(6), &[] as &[usize]);

let graph = create_graph_with_back_refs();
assert_eq!(graph.successors(0), &[1]);
assert_eq!(graph.successors(1), &[2, 3]);
assert_eq!(graph.successors(2), &[] as &[usize]);
assert_eq!(graph.successors(3), &[4]);
assert_eq!(graph.successors(4), &[] as &[usize]);
assert_eq!(graph.successors(5), &[1]);
assert_eq!(graph.successors(6), &[] as &[usize]);
}

#[test]
fn predecessors() {
let graph = create_graph_with_back_refs();
assert_eq!(graph.predecessors(0), &[]);
assert_eq!(graph.predecessors(1), &[0, 5]);
assert_eq!(graph.predecessors(2), &[1]);
assert_eq!(graph.predecessors(3), &[1]);
assert_eq!(graph.predecessors(4), &[3]);
assert_eq!(graph.predecessors(5), &[]);
assert_eq!(graph.predecessors(6), &[]);
}

#[test]
fn dfs() {
let graph = create_graph();
let dfs: Vec<_> = graph::depth_first_search(&graph, 0).collect();
assert_eq!(dfs, vec![0, 1, 3, 4, 2]);

let graph = create_graph_with_back_refs();
let dfs: Vec<_> = graph::depth_first_search(&graph, 0).collect();
assert_eq!(dfs, vec![0, 1, 3, 4, 2]);
}

0 comments on commit 523fe2b

Please sign in to comment.