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