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