Skip to content

Commit c8b5550

Browse files
committed
Add doc test to cargo test in binary_tree.rs
1 parent d9e134b commit c8b5550

File tree

1 file changed

+164
-0
lines changed

1 file changed

+164
-0
lines changed

src/binary_tree.rs

Lines changed: 164 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,7 +326,171 @@ impl<T> BinaryTree<T> {
326326
/// let n2_index = tree.add_right_node(root_index, n2);
327327
///
328328
/// assert_eq!(3, tree.len());
329+
/// ```
329330
pub fn len(&self) -> usize {
330331
self.tree.len()
331332
}
332333
}
334+
335+
#[cfg(test)]
336+
mod tests {
337+
use crate::binary_tree::{BinaryTree, BinaryTreeNode};
338+
339+
#[test]
340+
fn doc_test_binarytreenode_new() {
341+
let root = BinaryTreeNode::new(10);
342+
assert_eq!(root.value, 10);
343+
assert_eq!(root.index, 0);
344+
assert_eq!(root.left, 0);
345+
assert_eq!(root.right, 0);
346+
}
347+
348+
#[test]
349+
fn binarytree_default() {
350+
let bt: BinaryTree<i32> = BinaryTree::default();
351+
assert_eq!(bt.len(), 0);
352+
}
353+
354+
#[test]
355+
fn binarytree_new() {
356+
let bt: BinaryTree<i32> = BinaryTree::new();
357+
assert_eq!(bt.len(), 0);
358+
}
359+
360+
#[test]
361+
fn binarytree_is_empty() {
362+
let mut bt: BinaryTree<f32> = BinaryTree::new();
363+
assert!(bt.is_empty());
364+
let root = BinaryTreeNode::new(10.0);
365+
bt.add_root(root);
366+
assert_eq!(bt.is_empty(), false);
367+
}
368+
369+
#[test]
370+
fn doc_test_binarytree_add_root() {
371+
let mut tree: BinaryTree<f32> = BinaryTree::new();
372+
let root = BinaryTreeNode::new(10.0);
373+
let root_index = tree.add_root(root);
374+
assert_eq!(0, root_index);
375+
}
376+
377+
#[test]
378+
fn doc_test_binarytree_get_root_index() {
379+
let mut tree: BinaryTree<f32> = BinaryTree::new();
380+
let root = BinaryTreeNode::new(10.0);
381+
let _ = tree.add_root(root);
382+
let root_index = tree.get_root_index();
383+
assert_eq!(0, root_index);
384+
}
385+
386+
#[test]
387+
fn doc_test_binarytree_get_left_child() {
388+
let mut tree: BinaryTree<f32> = BinaryTree::new();
389+
let root = BinaryTreeNode::new(10.0);
390+
let root_index = tree.add_root(root);
391+
let left_node = BinaryTreeNode::new(5.0);
392+
let _ = tree.add_left_node(root_index, left_node);
393+
let root = tree.get_node(root_index).unwrap();
394+
let left_node = tree.get_left_child(root).unwrap();
395+
assert_eq!(left_node.value, 5.0);
396+
}
397+
398+
#[test]
399+
fn doc_test_binarytree_get_right_child() {
400+
let mut tree: BinaryTree<f32> = BinaryTree::new();
401+
let root = BinaryTreeNode::new(10.0);
402+
let root_index = tree.add_root(root);
403+
let right_node = BinaryTreeNode::new(5.0);
404+
let _ = tree.add_right_node(root_index, right_node);
405+
let root = tree.get_node(root_index).unwrap();
406+
let right_node = tree.get_right_child(root).unwrap();
407+
assert_eq!(right_node.value, 5.0);
408+
}
409+
410+
#[test]
411+
fn doc_test_get_node() {
412+
let mut tree: BinaryTree<i32> = BinaryTree::new();
413+
let root = BinaryTreeNode::new(10);
414+
let _ = tree.add_root(root);
415+
let root_index = tree.get_root_index();
416+
let root = tree.get_node(root_index).unwrap();
417+
assert_eq!(10, root.value)
418+
}
419+
420+
#[test]
421+
fn doc_test_get_node_mut() {
422+
let mut tree: BinaryTree<i32> = BinaryTree::new();
423+
let root = BinaryTreeNode::new(10);
424+
let _ = tree.add_root(root);
425+
let root_index = tree.get_root_index();
426+
let root = tree.get_node_mut(root_index).unwrap();
427+
root.value = 11;
428+
assert_eq!(11, root.value);
429+
}
430+
431+
#[test]
432+
fn doc_test_add_left_node() {
433+
let mut tree: BinaryTree<f32> = BinaryTree::new();
434+
let root = BinaryTreeNode::new(10.0);
435+
let root_index = tree.add_root(root);
436+
let left_node = BinaryTreeNode::new(5.0);
437+
let _ = tree.add_left_node(root_index, left_node);
438+
let root = tree.get_node(root_index).unwrap();
439+
let left_node = tree.get_left_child(root).unwrap();
440+
assert_eq!(left_node.value, 5.0);
441+
}
442+
443+
#[test]
444+
fn doc_test_add_right_node() {
445+
let mut tree: BinaryTree<f32> = BinaryTree::new();
446+
let root = BinaryTreeNode::new(10.0);
447+
let root_index = tree.add_root(root);
448+
let right_node = BinaryTreeNode::new(5.0);
449+
let _ = tree.add_right_node(root_index, right_node);
450+
let root = tree.get_node(root_index).unwrap();
451+
let right_node = tree.get_right_child(root).unwrap();
452+
assert_eq!(right_node.value, 5.0);
453+
}
454+
455+
#[test]
456+
fn doc_test_print() {
457+
let mut tree: BinaryTree<f32> = BinaryTree::new();
458+
let root = BinaryTreeNode::new(10.0);
459+
460+
let root_index = tree.add_root(root);
461+
462+
let n1 = BinaryTreeNode::new(5.0);
463+
let n2 = BinaryTreeNode::new(6.0);
464+
465+
let n1_index = tree.add_left_node(root_index, n1);
466+
let n2_index = tree.add_right_node(root_index, n2);
467+
468+
let n3 = BinaryTreeNode::new(7.0);
469+
let n4 = BinaryTreeNode::new(8.0);
470+
471+
tree.add_left_node(n2_index, n3);
472+
tree.add_right_node(n2_index, n4);
473+
474+
let n5 = BinaryTreeNode::new(9.0);
475+
476+
tree.add_left_node(n1_index, n5);
477+
478+
tree.print();
479+
}
480+
481+
#[test]
482+
fn doc_test_tree_len() {
483+
let mut tree: BinaryTree<f32> = BinaryTree::new();
484+
let root = BinaryTreeNode::new(10.0);
485+
486+
let root_index = tree.add_root(root);
487+
488+
let n1 = BinaryTreeNode::new(5.0);
489+
let n2 = BinaryTreeNode::new(6.0);
490+
491+
let _n1_index = tree.add_left_node(root_index, n1);
492+
let _n2_index = tree.add_right_node(root_index, n2);
493+
494+
assert_eq!(3, tree.len());
495+
}
496+
}

0 commit comments

Comments
 (0)