Skip to content

Commit b659811

Browse files
committed
refact test
1 parent 7844bd2 commit b659811

File tree

3 files changed

+9
-37
lines changed

3 files changed

+9
-37
lines changed

src/sort/heap.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ where
1111
{
1212
let data = Vec::from(a);
1313
let mut heap = BinaryHeap::new(data, test);
14-
let mut res = Vec::new();
14+
let mut res = Vec::with_capacity(a.len());
1515
while let Some(v) = heap.pop() {
1616
res.push(v);
1717
}

src/sort/tree_selection.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,7 @@ fn pop<T: Copy + std::cmp::Ord + Minimal>(tree: &mut Tree<T>) -> Option<T> {
4545
}
4646

4747
// 返回叶子节点的序号
48-
fn replace_max_by_min<T: Copy + std::cmp::Ord + Minimal>(
49-
tree: &mut Tree<T>,
50-
root_key: T,
51-
) -> usize {
48+
fn replace_max_by_min<T: Copy + std::cmp::Ord + Minimal>(tree: &mut Tree<T>, root_key: T) -> usize {
5249
let mut idx = tree.root.unwrap();
5350
tree.node_at_mut(idx).unwrap().key = T::minimal();
5451

tests/test_binary_tree.rs

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -32,50 +32,25 @@ fn t_empty_tree() {
3232
let tree = new_tree(&["#"]);
3333
assert!(tree.arena.is_empty());
3434
assert!(tree.root.is_none());
35+
36+
let r = PreOrderVisitor::iterate(&tree);
37+
assert!(r.is_empty());
3538
}
3639

3740
#[test]
3841
fn t_tree_topology1() {
3942
let tokens = vec!["1", "#", "2", "3"];
4043
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]);
5346
}
5447

5548
#[test]
5649
fn t_tree_topology2() {
5750
let tokens = vec!["1", "2", "#", "3", "4", "#", "#", "5"];
5851
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]);
7954
}
8055

8156
#[test]

0 commit comments

Comments
 (0)