1
0
Fork 0
mirror of https://github.com/qurator-spk/dinglehopper.git synced 2025-07-11 11:29:57 +02:00

dinglehopper: Use rapidfuzz for editops

This commit is contained in:
Gerber, Mike 2021-10-22 15:38:59 +02:00
parent 249787686f
commit af8da1d716
5 changed files with 28 additions and 127 deletions

View file

@ -1,35 +1,38 @@
import unicodedata
from .. import seq_editops, editops
from rapidfuzz.string_metric import levenshtein_editops
from .. import editops
# TODO: Remove rapidfuzz.string_metric.levenshtein_editops tests eventually
def test_trivial():
assert seq_editops("abc", "abc") == []
assert seq_editops("", "") == []
assert levenshtein_editops("abc", "abc") == []
assert levenshtein_editops("", "") == []
def test_insert():
assert seq_editops("bc", "abc") == [("insert", 0, 0)]
assert seq_editops("ac", "abc") == [("insert", 1, 1)]
assert seq_editops("ab", "abc") == [("insert", 2, 2)]
assert seq_editops("", "a") == [("insert", 0, 0)]
assert levenshtein_editops("bc", "abc") == [("insert", 0, 0)]
assert levenshtein_editops("ac", "abc") == [("insert", 1, 1)]
assert levenshtein_editops("ab", "abc") == [("insert", 2, 2)]
assert levenshtein_editops("", "a") == [("insert", 0, 0)]
def test_multiple():
assert seq_editops("bcd", "abce") == [("insert", 0, 0), ("replace", 2, 3)]
assert levenshtein_editops("bcd", "abce") == [("insert", 0, 0), ("replace", 2, 3)]
def test_delete():
assert seq_editops("abcdef", "cdef") == [("delete", 0, 0), ("delete", 1, 0)]
assert seq_editops("Xabcdef", "Xcdef") == [("delete", 1, 1), ("delete", 2, 1)]
assert seq_editops("abcdefg", "acdefX") == [("delete", 1, 1), ("replace", 6, 5)]
assert seq_editops("abcde", "aabcd") == [("insert", 1, 1), ("delete", 4, 5)]
assert seq_editops("Foo", "") == [
assert levenshtein_editops("abcdef", "cdef") == [("delete", 0, 0), ("delete", 1, 0)]
assert levenshtein_editops("Xabcdef", "Xcdef") == [("delete", 1, 1), ("delete", 2, 1)]
assert levenshtein_editops("abcdefg", "acdefX") == [("delete", 1, 1), ("replace", 6, 5)]
assert levenshtein_editops("abcde", "aabcd") == [("insert", 1, 1), ("delete", 4, 5)]
assert levenshtein_editops("Foo", "") == [
("delete", 0, 0),
("delete", 1, 0),
("delete", 2, 0),
]
assert seq_editops("Foolish", "Foo") == [
assert levenshtein_editops("Foolish", "Foo") == [
("delete", 3, 3),
("delete", 4, 3),
("delete", 5, 3),
@ -38,10 +41,10 @@ def test_delete():
def test_ambiguous():
assert seq_editops("bcd", "abcef") == [
assert levenshtein_editops("bcd", "abcef") == [
("insert", 0, 0),
("replace", 2, 3),
("insert", 3, 4),
("insert", 2, 3),
("replace", 2, 4),
]