[M6] tests: levenshtein + pc_scan + brute_scan + findmodule_scan + last_failure_dir + cmd_linkdb_add + codegen PkgConfig/brute-force
This commit is contained in:
36
tests/levenshtein.cpp
Normal file
36
tests/levenshtein.cpp
Normal file
@@ -0,0 +1,36 @@
|
||||
#include <catch2/catch_test_macros.hpp>
|
||||
|
||||
import cargoxx.util;
|
||||
import std;
|
||||
|
||||
using cargoxx::util::levenshtein;
|
||||
|
||||
TEST_CASE("levenshtein of equal strings is zero", "[util][levenshtein]") {
|
||||
REQUIRE(levenshtein("", "") == 0);
|
||||
REQUIRE(levenshtein("sqlite", "sqlite") == 0);
|
||||
}
|
||||
|
||||
TEST_CASE("levenshtein counts a single suffix character", "[util][levenshtein]") {
|
||||
REQUIRE(levenshtein("sqlite", "sqlite3") == 1);
|
||||
REQUIRE(levenshtein("fmt", "fmtlib") == 3);
|
||||
}
|
||||
|
||||
TEST_CASE("levenshtein is symmetric", "[util][levenshtein]") {
|
||||
REQUIRE(levenshtein("sqlite", "sqlite3") == levenshtein("sqlite3", "sqlite"));
|
||||
REQUIRE(levenshtein("abseil-cpp", "absl") == levenshtein("absl", "abseil-cpp"));
|
||||
}
|
||||
|
||||
TEST_CASE("levenshtein counts a single substitution", "[util][levenshtein]") {
|
||||
REQUIRE(levenshtein("kitten", "sitten") == 1);
|
||||
REQUIRE(levenshtein("kitten", "kittes") == 1);
|
||||
}
|
||||
|
||||
TEST_CASE("levenshtein matches the classic kitten/sitting example",
|
||||
"[util][levenshtein]") {
|
||||
REQUIRE(levenshtein("kitten", "sitting") == 3);
|
||||
}
|
||||
|
||||
TEST_CASE("levenshtein handles empty inputs", "[util][levenshtein]") {
|
||||
REQUIRE(levenshtein("", "abc") == 3);
|
||||
REQUIRE(levenshtein("abc", "") == 3);
|
||||
}
|
||||
Reference in New Issue
Block a user