@@ -32,50 +32,25 @@ fn t_empty_tree() {
32
32
let tree = new_tree ( & [ "#" ] ) ;
33
33
assert ! ( tree. arena. is_empty( ) ) ;
34
34
assert ! ( tree. root. is_none( ) ) ;
35
+
36
+ let r = PreOrderVisitor :: iterate ( & tree) ;
37
+ assert ! ( r. is_empty( ) ) ;
35
38
}
36
39
37
40
#[ test]
38
41
fn t_tree_topology1 ( ) {
39
42
let tokens = vec ! [ "1" , "#" , "2" , "3" ] ;
40
43
let tree = new_tree ( & tokens) ;
41
- let p0 = tree. root . expect ( "invalid p0" ) ;
42
- let p0 = tree. node_at ( p0) . expect ( "invalid p0 node" ) ;
43
- assert_eq ! ( p0. key, 1 ) ;
44
- assert ! ( p0. left. is_none( ) ) ;
45
- //p1: '#'
46
- let p2 = p0. right . expect ( "invalid p0 right" ) ;
47
- let p2 = tree. node_at ( p2) . expect ( "invalid p2 node" ) ;
48
- assert_eq ! ( p2. key, 2 ) ;
49
- assert ! ( p2. right. is_none( ) ) ;
50
- let p3 = p2. left . expect ( "invalid p2 left" ) ;
51
- let p3 = tree. node_at ( p3) . expect ( "invalid p3 node" ) ;
52
- assert_eq ! ( p3. key, 3 ) ;
44
+ let r = PreOrderVisitor :: iterate ( & tree) ;
45
+ assert_eq ! ( r, vec![ 1 , 2 , 3 ] ) ;
53
46
}
54
47
55
48
#[ test]
56
49
fn t_tree_topology2 ( ) {
57
50
let tokens = vec ! [ "1" , "2" , "#" , "3" , "4" , "#" , "#" , "5" ] ;
58
51
let tree = new_tree ( & tokens) ;
59
- let p0 = tree. root . expect ( "invalid p0" ) ;
60
- let p0 = tree. node_at ( p0) . expect ( "invalid p0 node" ) ;
61
- assert_eq ! ( p0. key, 1 ) ;
62
- assert ! ( p0. right. is_none( ) ) ;
63
- let p1 = p0. left . expect ( "invalid p0 left" ) ;
64
- let p1 = tree. node_at ( p1) . expect ( "invalid p1 node" ) ;
65
- assert_eq ! ( p1. key, 2 ) ;
66
- //p2: '#'
67
- let p3 = p1. left . expect ( "invalid p3" ) ;
68
- let p3 = tree. node_at ( p3) . expect ( "invalid p3 node" ) ;
69
- assert_eq ! ( p3. key, 3 ) ;
70
- let p4 = p1. right . expect ( "invalid p4" ) ;
71
- let p4 = tree. node_at ( p4) . expect ( "invalid p3 node" ) ;
72
- assert_eq ! ( p4. key, 4 ) ;
73
- //p5: '#'
74
- //p6: '#'
75
- let p7 = p3. left . expect ( "invalid p7" ) ;
76
- let p7 = tree. node_at ( p7) . expect ( "invalid p7 node" ) ;
77
- assert_eq ! ( p7. key, 5 ) ;
78
- assert_eq ! ( tree. arena. len( ) , 5 ) ;
52
+ let r = PreOrderVisitor :: iterate ( & tree) ;
53
+ assert_eq ! ( r, vec![ 1 , 2 , 3 , 5 , 4 ] ) ;
79
54
}
80
55
81
56
#[ test]
0 commit comments