File: seek.rs

package info (click to toggle)
rust-prefixtree 0.1.3-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 80 kB
  • sloc: makefile: 4
file content (68 lines) | stat: -rw-r--r-- 2,479 bytes parent folder | download
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))));

    }
    
}