libmoost
|
00001 /* vim:set ts=3 sw=3 sts=3 et: */ 00028 #include <boost/test/unit_test.hpp> 00029 #include <boost/test/test_tools.hpp> 00030 00031 #include <vector> 00032 #include "../../include/moost/string/levenshtein.hpp" 00033 00034 using namespace moost::string; 00035 00036 BOOST_AUTO_TEST_SUITE( levenshtein_test ) 00037 00038 BOOST_AUTO_TEST_CASE( test_same ) 00039 { 00040 BOOST_CHECK_EQUAL(levenshtein("foo", "foo"), 0); 00041 } 00042 00043 BOOST_AUTO_TEST_CASE( test_diff ) 00044 { 00045 BOOST_CHECK_EQUAL(levenshtein("foo", "fob"), 1); 00046 } 00047 00048 BOOST_AUTO_TEST_CASE( test_order ) 00049 { 00050 BOOST_CHECK_EQUAL(levenshtein("foo", "oof"), 2); 00051 } 00052 00053 BOOST_AUTO_TEST_CASE( test_max ) 00054 { 00055 BOOST_CHECK_EQUAL(levenshtein("foo", "abc"), 3); 00056 } 00057 00058 BOOST_AUTO_TEST_CASE( test_transposition ) 00059 { 00060 BOOST_CHECK_EQUAL(levenshtein("abc", "acb"), 1); 00061 } 00062 00063 BOOST_AUTO_TEST_CASE( test_fast_same ) 00064 { 00065 BOOST_CHECK_EQUAL(fast_levenshtein("foo", "foo"), 0); 00066 } 00067 00068 BOOST_AUTO_TEST_CASE( test_fast_diff ) 00069 { 00070 BOOST_CHECK_EQUAL(fast_levenshtein("foo", "fob"), 1); 00071 } 00072 00073 BOOST_AUTO_TEST_CASE( test_fast_order ) 00074 { 00075 BOOST_CHECK_EQUAL(fast_levenshtein("foo", "oof"), 2); 00076 } 00077 00078 BOOST_AUTO_TEST_CASE( test_fast_max ) 00079 { 00080 BOOST_CHECK_EQUAL(fast_levenshtein("foo", "abc"), 3); 00081 } 00082 00083 BOOST_AUTO_TEST_CASE( test_fast_transposition ) 00084 { 00085 BOOST_CHECK_EQUAL(fast_levenshtein("abc", "acb"), 2); // NB e=different from levenshtein! 00086 } 00087 00088 BOOST_AUTO_TEST_SUITE_END()