-
Notifications
You must be signed in to change notification settings - Fork 11
/
test_germalemma.py
50 lines (41 loc) · 1.4 KB
/
test_germalemma.py
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
49
50
"""
Tests for germalemma module.
Markus Konrad <[email protected]>, Wissenschaftszentrum Berlin für Sozialforschung
January 2019
"""
import pytest
from germalemma import GermaLemma
lemmatizer = GermaLemma()
test_table = (
# known nouns
(('US-Präsident', 'N'), 'US-Präsident'),
(('US-Präsidenten', 'N'), 'US-Präsident'),
(('EG-Staaten', 'N'), 'EG-Staat'),
(('EG-Staaten', 'NP'), 'EG-Staat'),
# unknown nouns
(('US-Präsidentenhaus', 'N'), 'US-Präsidentenhaus'),
(('US-Präsidentenhäuser', 'N'), 'US-Präsidentenhaus'),
(('EU-Neu-Delegierte', 'N'), 'EU-Neu-Delegierter'),
(('Feinstaubbelastungen', 'N'), 'Feinstaubbelastung'),
# known adjectives
(('fies', 'ADJ'), 'fies'),
(('besser', 'ADJ'), 'gut'),
(('schöne', 'ADJ'), 'schön'),
# unknown adjectives
(('unbeschreibliches', 'ADJ'), 'unbeschreiblich'),
(('klagloser', 'ADJ'), 'klaglos'),
# capitalize nouns
(('Abgeordneten', 'NN'), 'Abgeordneter'),
(('xyz123', 'N'), 'Xyz123'),
# nonsense
(('-EU-Delegierte', 'N'), '-EU-Delegierter'),
(('EU-Delegierte-', 'N'), 'EU-Delegierte-'),
(('Xyz123', 'N'), 'Xyz123'),
(('', 'ADV'), ''),
)
def test_find_lemma():
for test, expected in test_table:
assert lemmatizer.find_lemma(*test) == expected
def test_find_lemma_exceptions():
with pytest.raises(ValueError):
lemmatizer.find_lemma('Der', 'DET')