@@ -6,12 +6,11 @@ use super::super::tests::TestGraph;
66fn diamond ( ) {
77 let graph = TestGraph :: new ( 0 , & [ ( 0 , 1 ) , ( 0 , 2 ) , ( 1 , 3 ) , ( 2 , 3 ) ] ) ;
88
9- let dominators = dominators ( & graph) ;
10- let immediate_dominators = & dominators. immediate_dominators ;
11- assert_eq ! ( immediate_dominators[ 0 ] , None ) ;
12- assert_eq ! ( immediate_dominators[ 1 ] , Some ( 0 ) ) ;
13- assert_eq ! ( immediate_dominators[ 2 ] , Some ( 0 ) ) ;
14- assert_eq ! ( immediate_dominators[ 3 ] , Some ( 0 ) ) ;
9+ let d = dominators ( & graph) ;
10+ assert_eq ! ( d. immediate_dominator( 0 ) , None ) ;
11+ assert_eq ! ( d. immediate_dominator( 1 ) , Some ( 0 ) ) ;
12+ assert_eq ! ( d. immediate_dominator( 2 ) , Some ( 0 ) ) ;
13+ assert_eq ! ( d. immediate_dominator( 3 ) , Some ( 0 ) ) ;
1514}
1615
1716#[ test]
@@ -22,15 +21,14 @@ fn paper() {
2221 & [ ( 6 , 5 ) , ( 6 , 4 ) , ( 5 , 1 ) , ( 4 , 2 ) , ( 4 , 3 ) , ( 1 , 2 ) , ( 2 , 3 ) , ( 3 , 2 ) , ( 2 , 1 ) ] ,
2322 ) ;
2423
25- let dominators = dominators ( & graph) ;
26- let immediate_dominators = & dominators. immediate_dominators ;
27- assert_eq ! ( immediate_dominators[ 0 ] , None ) ; // <-- note that 0 is not in graph
28- assert_eq ! ( immediate_dominators[ 1 ] , Some ( 6 ) ) ;
29- assert_eq ! ( immediate_dominators[ 2 ] , Some ( 6 ) ) ;
30- assert_eq ! ( immediate_dominators[ 3 ] , Some ( 6 ) ) ;
31- assert_eq ! ( immediate_dominators[ 4 ] , Some ( 6 ) ) ;
32- assert_eq ! ( immediate_dominators[ 5 ] , Some ( 6 ) ) ;
33- assert_eq ! ( immediate_dominators[ 6 ] , None ) ;
24+ let d = dominators ( & graph) ;
25+ assert_eq ! ( d. immediate_dominator( 0 ) , None ) ; // <-- note that 0 is not in graph
26+ assert_eq ! ( d. immediate_dominator( 1 ) , Some ( 6 ) ) ;
27+ assert_eq ! ( d. immediate_dominator( 2 ) , Some ( 6 ) ) ;
28+ assert_eq ! ( d. immediate_dominator( 3 ) , Some ( 6 ) ) ;
29+ assert_eq ! ( d. immediate_dominator( 4 ) , Some ( 6 ) ) ;
30+ assert_eq ! ( d. immediate_dominator( 5 ) , Some ( 6 ) ) ;
31+ assert_eq ! ( d. immediate_dominator( 6 ) , None ) ;
3432}
3533
3634#[ test]
@@ -47,11 +45,11 @@ fn paper_slt() {
4745#[ test]
4846fn immediate_dominator ( ) {
4947 let graph = TestGraph :: new ( 1 , & [ ( 1 , 2 ) , ( 2 , 3 ) ] ) ;
50- let dominators = dominators ( & graph) ;
51- assert_eq ! ( dominators . immediate_dominator( 0 ) , None ) ;
52- assert_eq ! ( dominators . immediate_dominator( 1 ) , None ) ;
53- assert_eq ! ( dominators . immediate_dominator( 2 ) , Some ( 1 ) ) ;
54- assert_eq ! ( dominators . immediate_dominator( 3 ) , Some ( 2 ) ) ;
48+ let d = dominators ( & graph) ;
49+ assert_eq ! ( d . immediate_dominator( 0 ) , None ) ;
50+ assert_eq ! ( d . immediate_dominator( 1 ) , None ) ;
51+ assert_eq ! ( d . immediate_dominator( 2 ) , Some ( 1 ) ) ;
52+ assert_eq ! ( d . immediate_dominator( 3 ) , Some ( 2 ) ) ;
5553}
5654
5755#[ test]
@@ -75,8 +73,7 @@ fn transitive_dominator() {
7573 ] ,
7674 ) ;
7775
78- let dom_tree = dominators ( & graph) ;
79- let immediate_dominators = & dom_tree. immediate_dominators ;
80- assert_eq ! ( immediate_dominators[ 2 ] , Some ( 0 ) ) ;
81- assert_eq ! ( immediate_dominators[ 3 ] , Some ( 0 ) ) ; // This used to return Some(1).
76+ let d = dominators ( & graph) ;
77+ assert_eq ! ( d. immediate_dominator( 2 ) , Some ( 0 ) ) ;
78+ assert_eq ! ( d. immediate_dominator( 3 ) , Some ( 0 ) ) ; // This used to return Some(1).
8279}
0 commit comments