diff options
Diffstat (limited to 'vespalib/src/tests/fuzzy/fuzzy.cpp')
-rw-r--r-- | vespalib/src/tests/fuzzy/fuzzy.cpp | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/vespalib/src/tests/fuzzy/fuzzy.cpp b/vespalib/src/tests/fuzzy/fuzzy.cpp new file mode 100644 index 00000000000..9ffb77b3742 --- /dev/null +++ b/vespalib/src/tests/fuzzy/fuzzy.cpp @@ -0,0 +1,33 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +#include <vespa/vespalib/testkit/test_kit.h> +#include <vespa/vespalib/fuzzy/fuzzy.h> + +using namespace vespalib; + + +TEST("require that levenstein distance works") { + EXPECT_EQUAL(0u, Fuzzy::levenstein_distance("abc", "abc", 2).value()); + EXPECT_EQUAL(0u, Fuzzy::levenstein_distance("abc", "ABC", 2).value()); + EXPECT_EQUAL(1u, Fuzzy::levenstein_distance("abc", "abd", 2).value()); + EXPECT_EQUAL(1u, Fuzzy::levenstein_distance("ABC", "abd", 2).value()); + EXPECT_EQUAL(2u, Fuzzy::levenstein_distance("ABC", "add", 2).value()); + EXPECT_FALSE(Fuzzy::levenstein_distance("ABC", "ddd", 2).has_value()); +} + +TEST("require that extracting of a prefix works") { + Fuzzy fuzzy(Fuzzy::folded_codepoints("prefix"), 2, 2); + EXPECT_EQUAL("pr", fuzzy.getPrefix()); +} + +TEST("require that empty prefix works") { + Fuzzy fuzzy(Fuzzy::folded_codepoints("prefix"), 0, 2); + EXPECT_EQUAL("", fuzzy.getPrefix()); +} + +TEST("require that longer prefix size works") { + Fuzzy fuzzy(Fuzzy::folded_codepoints("prefix"), 100, 2); + EXPECT_EQUAL("prefix", fuzzy.getPrefix()); +} + + +TEST_MAIN() { TEST_RUN_ALL(); } |