Пример #1
0
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))
Пример #2
0
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))
Пример #3
0
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)
Пример #4
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)
Пример #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))