@@ -6,12 +6,11 @@ use super::super::tests::TestGraph;
6
6
fn diamond ( ) {
7
7
let graph = TestGraph :: new ( 0 , & [ ( 0 , 1 ) , ( 0 , 2 ) , ( 1 , 3 ) , ( 2 , 3 ) ] ) ;
8
8
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 ) ) ;
15
14
}
16
15
17
16
#[ test]
@@ -22,15 +21,14 @@ fn paper() {
22
21
& [ ( 6 , 5 ) , ( 6 , 4 ) , ( 5 , 1 ) , ( 4 , 2 ) , ( 4 , 3 ) , ( 1 , 2 ) , ( 2 , 3 ) , ( 3 , 2 ) , ( 2 , 1 ) ] ,
23
22
) ;
24
23
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 ) ;
34
32
}
35
33
36
34
#[ test]
@@ -47,11 +45,11 @@ fn paper_slt() {
47
45
#[ test]
48
46
fn immediate_dominator ( ) {
49
47
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 ) ) ;
55
53
}
56
54
57
55
#[ test]
@@ -75,8 +73,7 @@ fn transitive_dominator() {
75
73
] ,
76
74
) ;
77
75
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).
82
79
}
0 commit comments