182e69de5Sopenharmony_ciextern crate strsim; 282e69de5Sopenharmony_ci 382e69de5Sopenharmony_ciuse strsim::{hamming, levenshtein, normalized_levenshtein, osa_distance,damerau_levenshtein, 482e69de5Sopenharmony_ci normalized_damerau_levenshtein, jaro, jaro_winkler}; 582e69de5Sopenharmony_ci 682e69de5Sopenharmony_ci#[test] 782e69de5Sopenharmony_cifn hamming_works() { 882e69de5Sopenharmony_ci match hamming("hamming", "hammers") { 982e69de5Sopenharmony_ci Ok(distance) => assert_eq!(3, distance), 1082e69de5Sopenharmony_ci Err(why) => panic!("{:?}", why) 1182e69de5Sopenharmony_ci } 1282e69de5Sopenharmony_ci} 1382e69de5Sopenharmony_ci 1482e69de5Sopenharmony_ci#[test] 1582e69de5Sopenharmony_cifn levenshtein_works() { 1682e69de5Sopenharmony_ci assert_eq!(3, levenshtein("kitten", "sitting")); 1782e69de5Sopenharmony_ci} 1882e69de5Sopenharmony_ci 1982e69de5Sopenharmony_ci#[test] 2082e69de5Sopenharmony_cifn normalized_levenshtein_works() { 2182e69de5Sopenharmony_ci assert!((normalized_levenshtein("kitten", "sitting") - 0.57142).abs() < 0.00001); 2282e69de5Sopenharmony_ci} 2382e69de5Sopenharmony_ci 2482e69de5Sopenharmony_ci#[test] 2582e69de5Sopenharmony_cifn osa_distance_works() { 2682e69de5Sopenharmony_ci assert_eq!(3, osa_distance("ac", "cba")); 2782e69de5Sopenharmony_ci} 2882e69de5Sopenharmony_ci 2982e69de5Sopenharmony_ci#[test] 3082e69de5Sopenharmony_cifn damerau_levenshtein_works() { 3182e69de5Sopenharmony_ci assert_eq!(2, damerau_levenshtein("ac", "cba")); 3282e69de5Sopenharmony_ci} 3382e69de5Sopenharmony_ci 3482e69de5Sopenharmony_ci#[test] 3582e69de5Sopenharmony_cifn normalized_damerau_levenshtein_works() { 3682e69de5Sopenharmony_ci assert!((normalized_damerau_levenshtein("levenshtein", "löwenbräu") - 0.27272).abs() < 0.00001); 3782e69de5Sopenharmony_ci} 3882e69de5Sopenharmony_ci 3982e69de5Sopenharmony_ci#[test] 4082e69de5Sopenharmony_cifn jaro_works() { 4182e69de5Sopenharmony_ci assert!((0.392 - jaro("Friedrich Nietzsche", "Jean-Paul Sartre")).abs() < 4282e69de5Sopenharmony_ci 0.001); 4382e69de5Sopenharmony_ci} 4482e69de5Sopenharmony_ci 4582e69de5Sopenharmony_ci#[test] 4682e69de5Sopenharmony_cifn jaro_winkler_works() { 4782e69de5Sopenharmony_ci assert!((0.911 - jaro_winkler("cheeseburger", "cheese fries")).abs() < 4882e69de5Sopenharmony_ci 0.001); 4982e69de5Sopenharmony_ci} 50