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