limbo/simulator-docker-runner/levenshtein.test.ts

26 lines
No EOL
1,011 B
TypeScript

import { test, expect } from "bun:test";
import { levenshtein } from "./levenshtein";
test("levenshtein distance between empty strings is 0", () => {
expect(levenshtein("", "")).toBe(0);
});
test("levenshtein distance between completely different same length strings is their length", () => {
expect(levenshtein("abcde", "fghij")).toBe(5);
expect(levenshtein("fghij", "abcde")).toBe(5);
});
test("levenshtein distance between strings with one edit is 1", () => {
expect(levenshtein("hello", "hallo")).toBe(1);
expect(levenshtein("hallo", "hello")).toBe(1);
});
test("levenshtein distance between otherwise identical strings with length difference is their length difference", () => {
expect(levenshtein("hello", "hello world")).toBe(6);
expect(levenshtein("hello world", "hello")).toBe(6);
});
test("levenshtein distance between strings with multiple edits is the sum of the edits", () => {
expect(levenshtein("hello", "hallu")).toBe(2);
expect(levenshtein("hallu", "hello")).toBe(2);
});