File: test_median.py

package info (click to toggle)
python-levenshtein 0.27.1-2
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 304 kB
  • sloc: cpp: 724; python: 291; makefile: 20; sh: 13
file content (48 lines) | stat: -rw-r--r-- 1,301 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
from __future__ import annotations

import Levenshtein


def test_weight_zero():
    """
    Strings with zero weights should be ignored
    """
    assert Levenshtein.quickmedian(["tes", "teste"], [0, 0]) == ""
    assert Levenshtein.quickmedian(["tes", "teste"], [1, 0]) == "tes"
    assert Levenshtein.quickmedian(["tes", "teste"], [0, 1]) == "teste"


def test_documented():
    """
    run tests from documentation
    """
    assert Levenshtein.median(["SpSm", "mpamm", "Spam", "Spa", "Sua", "hSam"]) == "Spam"
    fixme = [
        "Levnhtein",
        "Leveshein",
        "Leenshten",
        "Leveshtei",
        "Lenshtein",
        "Lvenstein",
        "Levenhtin",
        "evenshtei",
    ]
    assert Levenshtein.median(fixme) == "Levenshtein"
    assert Levenshtein.quickmedian(fixme) == "Levnshein"
    assert Levenshtein.median_improve("spam", fixme) == "enhtein"
    assert Levenshtein.median_improve(Levenshtein.median_improve("spam", fixme), fixme) == "Levenshtein"
    assert (
        Levenshtein.setmedian(
            [
                "ehee",
                "cceaes",
                "chees",
                "chreesc",
                "chees",
                "cheesee",
                "cseese",
                "chetese",
            ]
        )
        == "chees"
    )