1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
extern crate prefixtree;
#[cfg(test)]
mod tests {
use prefixtree::{PrefixTree, prefix_tree_from_str};
#[test]
fn one_char_test() {
let sorted_word_list: Vec<(&str, i32)> = vec![("A", 1)];
let prefix_tree = prefix_tree_from_str(&sorted_word_list[..]);
assert!(prefix_tree.seek(&(0,0,'A')) == Some(&(0, true, Some(1))));
assert!(prefix_tree.seek(&(0,0,'B')).is_none());
}
#[test]
fn one_word_test() {
let sorted_word_list = vec![("AB", 1)];
let prefix_tree = prefix_tree_from_str(&sorted_word_list[..]);
assert!(prefix_tree.seek(&(0,0,'A')) == Some(&(0,false,None)));
assert!(prefix_tree.seek(&(0,1,'B')) == Some(&(0,true,Some(1))));
}
#[test]
fn two_word_test() {
let sorted_word_list = vec![("A",1), ("AB",2)];
let prefix_tree = prefix_tree_from_str(&sorted_word_list[..]);
assert!(prefix_tree.seek(&(0,0,'A')) == Some(&(0,true,Some(1))));
assert!(prefix_tree.seek(&(0,1,'B')) == Some(&(1,true,Some(2))));
}
#[test]
fn three_word_test() {
let sorted_word_list = vec![("A",1), ("AB",2), ("CXX",3)];
let prefix_tree = prefix_tree_from_str(&sorted_word_list[..]);
assert!(prefix_tree.seek(&(0,0,'A')) == Some(&(0,true,Some(1))));
assert!(prefix_tree.seek(&(0,1,'B')) == Some(&(1,true,Some(2))));
assert!(prefix_tree.seek(&(0,0,'C')) == Some(&(2,false,None)));
assert!(prefix_tree.seek(&(2,1,'X')) == Some(&(2,false,None)));
assert!(prefix_tree.seek(&(2,2,'X')) == Some(&(2,true,Some(3))));
}
#[test]
fn vec_of_vec_test() {
let sorted_list = vec![
(vec![1,2], 1),
(vec![1,3], 2)
];
let prefix_tree = PrefixTree::new(&sorted_list);
assert!(prefix_tree.seek(&(0,0,1)) == Some(&(0,false,None)));
assert!(prefix_tree.seek(&(0,1,2)) == Some(&(0,true,Some(1))));
assert!(prefix_tree.seek(&(0,1,3)) == Some(&(1,true,Some(2))));
}
#[test]
fn vec_of_str_vec_test() {
let sorted_list = vec![
(vec!["CAT", "DOG"], 1),
(vec!["CAT", "ZOO"], 2)
];
let prefix_tree = PrefixTree::new(&sorted_list);
assert!(prefix_tree.seek(&(0,0,"CAT")) == Some(&(0,false,None)));
assert!(prefix_tree.seek(&(0,1,"DOG")) == Some(&(0,true,Some(1))));
assert!(prefix_tree.seek(&(0,1,"ZOO")) == Some(&(1,true,Some(2))));
}
}
|