xref: /third_party/rust/crates/strsim-rs/tests/lib.rs (revision 82e69de5)
1extern crate strsim;
2
3use strsim::{hamming, levenshtein, normalized_levenshtein, osa_distance,damerau_levenshtein,
4             normalized_damerau_levenshtein, jaro, jaro_winkler};
5
6#[test]
7fn hamming_works() {
8    match hamming("hamming", "hammers") {
9        Ok(distance) => assert_eq!(3, distance),
10        Err(why) => panic!("{:?}", why)
11    }
12}
13
14#[test]
15fn levenshtein_works() {
16    assert_eq!(3, levenshtein("kitten", "sitting"));
17}
18
19#[test]
20fn normalized_levenshtein_works() {
21    assert!((normalized_levenshtein("kitten", "sitting") - 0.57142).abs() < 0.00001);
22}
23
24#[test]
25fn osa_distance_works() {
26    assert_eq!(3, osa_distance("ac", "cba"));
27}
28
29#[test]
30fn damerau_levenshtein_works() {
31    assert_eq!(2, damerau_levenshtein("ac", "cba"));
32}
33
34#[test]
35fn normalized_damerau_levenshtein_works() {
36    assert!((normalized_damerau_levenshtein("levenshtein", "löwenbräu") - 0.27272).abs() < 0.00001);
37}
38
39#[test]
40fn jaro_works() {
41    assert!((0.392 - jaro("Friedrich Nietzsche", "Jean-Paul Sartre")).abs() <
42            0.001);
43}
44
45#[test]
46fn jaro_winkler_works() {
47    assert!((0.911 - jaro_winkler("cheeseburger", "cheese fries")).abs() <
48            0.001);
49}
50