84 lines
1.8 KiB
Rust
84 lines
1.8 KiB
Rust
use ego_tree::tree;
|
|
|
|
#[test]
|
|
fn value() {
|
|
let tree = tree!('a');
|
|
assert_eq!(&'a', tree.root().value());
|
|
}
|
|
|
|
#[test]
|
|
fn parent() {
|
|
let tree = tree!('a' => { 'b' });
|
|
let b = tree.root().first_child().unwrap();
|
|
assert_eq!(tree.root(), b.parent().unwrap());
|
|
}
|
|
|
|
#[test]
|
|
fn prev_sibling() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
let c = tree.root().last_child().unwrap();
|
|
assert_eq!(tree.root().first_child(), c.prev_sibling());
|
|
}
|
|
|
|
#[test]
|
|
fn next_sibling() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
let b = tree.root().first_child().unwrap();
|
|
assert_eq!(tree.root().last_child(), b.next_sibling());
|
|
}
|
|
|
|
#[test]
|
|
fn first_child() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
assert_eq!(&'b', tree.root().first_child().unwrap().value());
|
|
}
|
|
|
|
#[test]
|
|
fn last_child() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
assert_eq!(&'c', tree.root().last_child().unwrap().value());
|
|
}
|
|
|
|
#[test]
|
|
fn has_siblings() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
assert!(!tree.root().has_siblings());
|
|
assert!(tree.root().first_child().unwrap().has_siblings());
|
|
}
|
|
|
|
#[test]
|
|
fn has_children() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
assert!(tree.root().has_children());
|
|
assert!(!tree.root().first_child().unwrap().has_children());
|
|
}
|
|
|
|
#[test]
|
|
fn clone() {
|
|
let tree = tree!('a');
|
|
let one = tree.root();
|
|
let two = one;
|
|
assert_eq!(one, two);
|
|
}
|
|
|
|
#[test]
|
|
fn eq() {
|
|
let tree = tree!('a');
|
|
assert_eq!(tree.root(), tree.root());
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn neq() {
|
|
let tree = tree!('a' => { 'b', 'c' });
|
|
assert_eq!(tree.root(), tree.root().first_child().unwrap());
|
|
}
|
|
|
|
#[test]
|
|
#[should_panic]
|
|
fn neq_tree() {
|
|
let one = tree!('a');
|
|
let two = one.clone();
|
|
assert_eq!(one.root(), two.root());
|
|
}
|