StringDistances.jl/test/distances.jl

63 lines
2.4 KiB
Julia
Raw Normal View History

2015-10-22 18:12:44 +02:00
2015-10-23 03:03:57 +02:00
using StringDistances, Base.Test
2015-10-22 18:12:44 +02:00
2015-10-23 23:05:11 +02:00
@test_approx_eq_eps jaro_winkler("MARTHA", "MARHTA", boosting_threshold = 0.0, long_threshold = 100) 1 - 0.9611 1e-4
@test_approx_eq_eps jaro_winkler("DWAYNE", "DUANE", boosting_threshold = 0.0, long_threshold = 100) 1 - 0.84 1e-4
@test_approx_eq_eps jaro_winkler("DIXON", "DICKSONX", boosting_threshold = 0.0, long_threshold = 100) 1 - 0.81333 1e-4
@test_approx_eq_eps jaro_winkler("William", "Williams", boosting_threshold = 0.0, long_threshold = 100) 1 - 0.975 1e-4
@test_approx_eq_eps jaro_winkler("", "foo", boosting_threshold = 0.0, long_threshold = 100) 1.0 1e-4
@test_approx_eq_eps jaro_winkler("a", "a", boosting_threshold = 0.0, long_threshold = 100) 0.0 1e-4
@test_approx_eq_eps jaro_winkler("abc", "xyz", boosting_threshold = 0.0, long_threshold = 100) 1.0 1e-4
2015-10-22 18:12:44 +02:00
@test levenshtein("", "") == 0
@test levenshtein("abc", "") == 3
@test levenshtein("", "abc") == 3
@test levenshtein("bc", "abc") == 1
@test levenshtein("kitten", "sitting") == 3
@test levenshtein("Saturday", "Sunday") == 3
2015-10-24 18:45:24 +02:00
@test 4 == evaluate(Levenshtein(), "Hi, my name is", "my name is")
@test 21 == evaluate(Levenshtein(), "%^@!^@#^@#!! Snoooooooop", "Dro!p it!!!! like it's hot")
@test 7 == evaluate(Levenshtein(), "Alborgów", "amoniak")
2015-10-23 03:03:57 +02:00
@test damerau_levenshtein("", "") == 0
@test damerau_levenshtein("abc", "") == 3
@test damerau_levenshtein("bc", "abc") == 1
@test damerau_levenshtein("fuor", "four") == 1
@test damerau_levenshtein("abcd", "acb") == 2
@test damerau_levenshtein("cape sand recycling ", "edith ann graham") == 17
@test damerau_levenshtein("jellyifhs", "jellyfish") == 2
@test damerau_levenshtein("ifhs", "fish") == 2
2015-10-22 18:12:44 +02:00
@test hamming("", "") == 0
@test hamming("", "abc") == 3
@test hamming("abc", "abc") == 0
@test hamming("acc", "abc") == 1
@test hamming("abcd", "abc") == 1
@test hamming("abc", "abcd") == 1
@test hamming("testing", "this is a test") == 13
@test hamming("Saturday", "Sunday") == 7
2015-10-23 16:12:51 +02:00
@test qgram("", "abc", q = 1) == 3
@test qgram("abc", "cba", q = 1) == 0
@test qgram("abc", "ccc", q = 1) == 4
2015-10-22 18:12:44 +02:00
2015-10-23 16:12:51 +02:00
@test_approx_eq_eps jaccard("", "abc", q = 1) 1.0 1e-4
@test_approx_eq_eps jaccard("abc", "ccc", q = 1) .666666 1e-4
@test_approx_eq_eps jaccard("leia", "leela", q = 2) 0.83333 1e-4
2015-10-23 23:05:11 +02:00
@test_approx_eq_eps cosine("", "abc", q = 2) 1 1e-4
2015-10-23 16:12:51 +02:00
@test_approx_eq_eps cosine("abc", "ccc", q = 2) 1 1e-4
2015-10-23 23:05:11 +02:00
@test_approx_eq_eps cosine("leia", "leela", q = 2) 0.7113249 1e-4