def test_dl_transpose4(): metric = simtrie.Metric((('ba', 'ab'), 1.5) # transpose rule ) def dl(a, b): return _dam_lev(a, b, metric) assert (dl('ab', 'bca') == pytest.approx(2)) assert (dl('bca', 'ab') == pytest.approx(2.5))
def test_dl_transpose2(): metric = simtrie.Metric((('c', None), 1.9) # deletion rule ) def dl(a, b): return _dam_lev(a, b, metric) assert (dl('bca', 'ab') == pytest.approx(2.9)) assert (dl('bdca', 'ab') == pytest.approx(3.9)) assert (dl('ab', 'bca') == pytest.approx(2))
def test_lev_delete(): metric = simtrie.Metric((('z', None), 7.5) # deletion rule ) def lev(a, b): return _lev(a, b, metric) assert (lev('x', 'xz') == 1.0) assert (lev('z', '') == 7.5) assert (lev('xyz', 'zzxz') == 3.0) assert (lev('zzxzzz', 'xyz') == 18.0)
def test_lev_insert(): metric = simtrie.Metric(((None, 'a'), 5) # insertion rule ) def lev(a, b): return _lev(a, b, metric) # assert(lev('', 'a') == 5.0) assert (lev('a', '') == 1.0) # assert(lev('', 'aa') == 10.0) assert (lev('a', 'aa') == 5.0) assert (lev('aa', 'a') == 1.0) assert (lev('asdf', 'asdf') == 0.0) assert (lev('xyz', 'abc') == 3.0) assert (lev('xyz', 'axyz') == 5.0) assert (lev('x', 'ax') == 5.0)
def test_lev_substitute(): metric = simtrie.Metric( (('a', 'z'), 1.2), # substitution rule (('z', 'a'), 0.1), # substitution rule ) def lev(a, b): return _lev(a, b, metric) assert (lev('a', 'z') == pytest.approx(1.2)) assert (lev('z', 'a') == pytest.approx(0.1)) assert (lev('a', '') == pytest.approx(1)) # assert(lev('', 'a'), 1) assert (lev('asdf', 'zzzz') == pytest.approx(4.2)) assert (lev('asdf', 'zz') == pytest.approx(4.0)) assert (lev('asdf', 'zsdf') == pytest.approx(1.2)) assert (lev('zsdf', 'asdf') == pytest.approx(0.1))