| import pytest |
|
|
| from tagger.edits import apply_script, compute_script, form_key, lemma_key |
|
|
| CASES = [ |
| ("ἀνθρώπου", "ἄνθρωπος"), |
| ("τιλλόμενος", "τίλλω"), |
| ("ἠνείχετο", "ἀνέχω"), |
| ("μαθητὴς", "μαθητής"), |
| ("δʼ", "δέ"), |
| ("Σωκράτης", "Σωκράτης"), |
| ("θεώ", "θεός"), |
| ("οὐκ", "οὐ"), |
| ("κἀγώ", "κἀγώ"), |
| ] |
|
|
|
|
| @pytest.mark.parametrize("form,lemma", CASES) |
| def test_roundtrip(form, lemma): |
| key = form_key(form) |
| sc = compute_script(key, lemma) |
| out = apply_script(key, sc) |
| assert out == lemma_key(lemma) |
| assert sc[4] == (lemma[0] != lemma[0].lower()) |
|
|
|
|
| def test_grave_fold(): |
| assert form_key("μαθητὴς") == form_key("μαθητής") |
|
|
|
|
| def test_inapplicable(): |
| sc = compute_script(form_key("ἀνθρώπου"), "ἄνθρωπος") |
| assert apply_script("ὁ", sc) is None or len("ὁ") >= sc[0] + sc[2] |
|
|