ice_core 0.3.9

High performance Web engine
Documentation
use prefix_tree::PrefixTree;

#[test]
fn test_prefix_tree() {
    let mut pt: PrefixTree<String, i32> = PrefixTree::new();

    let key_seq_1 = vec![
        "a".to_string(),
        "b".to_string(),
        "c".to_string()
    ];
    pt.insert(key_seq_1.as_slice(), 1);

    let key_seq_2 = vec![
        "a".to_string(),
        "b".to_string(),
        "d".to_string()
    ];
    pt.insert(key_seq_2.as_slice(), 2);

    let key_seq_3 = vec![
        "a".to_string(),
        "c".to_string(),
        "d".to_string()
    ];
    pt.insert(key_seq_3.as_slice(), 3);

    let key_seq_4 = vec![
        "a".to_string(),
        "_".to_string(),
        "_".to_string()
    ];
    pt.insert(key_seq_4.as_slice(), 4);

    assert!(pt.find(key_seq_1.as_slice(), None).unwrap() == 1);
    assert!(pt.find(key_seq_2.as_slice(), None).unwrap() == 2);
    assert!(pt.find(key_seq_3.as_slice(), None).unwrap() == 3);
    assert!(pt.find(vec![
        "a".to_string(),
        "n".to_string(),
        "d".to_string()
    ].as_slice(), Some(&"b".to_string())).unwrap() == 2);
    assert!(pt.find(vec![
        "a".to_string(),
        "m".to_string(),
        "n".to_string()
    ].as_slice(), Some(&"_".to_string())).unwrap() == 4);
}