Skip to content

Commit 5238b27

Browse files
committed
Fix tests and requırements
Signed-off-by: Olga Bulat <[email protected]>
1 parent fe6975d commit 5238b27

File tree

3 files changed

+16
-50
lines changed

3 files changed

+16
-50
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,4 @@ ENV/
101101
# mypy
102102
.mypy_cache/
103103
/vvenv/
104+
/.idea/

requirements.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ certifi==2020.4.5.1
55
chardet==3.0.4
66
click==7.1.2
77
colorama==0.4.3
8+
coverage==5.3.1
89
docutils==0.16
910
idna==2.9
1011
imagesize==1.2.0
@@ -18,6 +19,7 @@ packaging==20.4
1819
pkginfo==1.5.0.1
1920
Pygments==2.6.1
2021
pyparsing==2.4.7
22+
pytest==6.2.1
2123
pytz==2020.1
2224
pywin32-ctypes==0.2.0
2325
readme-renderer==26.0

tests/test_analysis.py

Lines changed: 13 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,11 @@
55

66
import pytest
77

8-
from zeyrek.attributes import SecondaryPos, PrimaryPos, calculate_phonetic_attributes
8+
from zeyrek.attributes import SecondaryPos, PrimaryPos, calculate_phonetic_attributes, RootAttribute, PhoneticAttribute
99
from zeyrek.lexicon import DictionaryItem, RootLexicon
1010
from zeyrek.morphology import MorphAnalyzer
11-
from zeyrek.morphotactics import StemTransition, SearchPath, root_S
12-
13-
14-
@pytest.fixture
15-
def response():
16-
"""Sample pytest fixture.
17-
18-
See more at: http://doc.pytest.org/en/latest/fixture.html
19-
"""
20-
# import requests
21-
# return requests.get('https://github.com/audreyr/cookiecutter-pypackage')
11+
from zeyrek.morphotactics import StemTransition, SearchPath, root_S, noun_S, MorphemeState, p2sg_S, loc_ST, a3pl_S, \
12+
SuffixTransition, morphemes, equ_ST, TurkishMorphotactics, adjectiveRoot_ST
2213

2314

2415
@pytest.fixture
@@ -43,7 +34,6 @@ def test_rootlexicon(dict_item):
4334
lex.add(dict_item)
4435
assert dict_item in lex.item_set
4536
assert dict_item.id_ in lex.id_dict
46-
print(dict_item.id_)
4737
item = lex.get_item_by_id(dict_item.id_)
4838
assert item == dict_item
4939
assert len(lex) == 1
@@ -60,48 +50,23 @@ def test_initial_search_path():
6050
assert p.stem_transition == transition
6151

6252

63-
"""
6453
def test_stem_transition():
6554
from zeyrek.attributes import calculate_phonetic_attributes
66-
word = 'beyaz'
67-
attr = DictItemAttrs(RootAttribute(0), calculate_phonetic_attributes(word))
68-
dict_item = DictionaryItem(word, word, PrimaryPos.Adjective,
69-
SecondaryPos.NONE, attr, word, 0)
70-
transition = StemTransition(word, dict_item,
71-
attr, noun_S)
72-
assert transition.to_ == noun_S
73-
# assert str(transition) == "<(Dict: beyaz [P:Adj]):beyaz → [noun_S:Noun]>"
74-
print(transition, dir(transition))
55+
word_line = 'beyaz [P:Adj]'
56+
lexicon = RootLexicon.from_lines([word_line])
57+
morphotactics = TurkishMorphotactics(lexicon=lexicon)
58+
dict_item = lexicon.get_matching_items('beyaz')[0]
59+
transition = morphotactics.stem_transitions.prefix_matches('beyaz')[0]
60+
assert transition.to_ == adjectiveRoot_ST
61+
assert str(transition) == "<(Dict: beyaz [P:Adj]):beyaz → [adjectiveRoot_ST:Adj]>"
7562
assert transition.condition is None
7663
assert transition.condition_count == 0
7764
assert transition.dict_item.lemma == 'beyaz'
78-
assert transition.from_ is None
79-
print(transition.phonetic_attrs)
65+
assert transition.from_ is root_S
8066

81-
assert transition.phonetic_attrs & (PhoneticAttribute.FirstLetterConsonant | PhoneticAttribute.LastLetterConsonant)
82-
assert transition.surface == dict_item.lemma
67+
calculated_attrs = calculate_phonetic_attributes('beyaz')
68+
assert transition.attrs == calculated_attrs
8369
assert type(transition.to_) == MorphemeState
84-
assert transition.to_ == noun_S
85-
86-
87-
88-
def test_morphotactics():
89-
item = DictionaryItem("guzel", "guzel", PrimaryPos.Adjective, SecondaryPos.NONE, [], "guzel", 0)
90-
lex = RootLexicon()
91-
lex.add(item)
92-
m = TurkishMorphotactics(lex)
93-
print(m)
94-
assert m is not None
95-
96-
from zeyrek.conditions import PreviousMorphemeIs
97-
trans = SuffixTransition(p2sg_S, equ_ST, 'cA', PreviousMorphemeIs(morphemes['A3pl']))
98-
print(trans, trans.condition, trans.condition_count)
99-
pre_trans = SuffixTransition(a3pl_S, p2sg_S)
100-
101-
assert trans is not None
102-
path = SearchPath('ca', MorphemeState(loc_ST, loc_ST, True), [a3pl_S, p2sg_S], PhoneticAttribute.LastLetterVowel, True)
103-
assert trans.condition.accept(path)
104-
"""
10570

10671

10772
@pytest.fixture
@@ -112,10 +77,8 @@ def lex_from_lines():
11277
def test_analysis(lex_from_lines):
11378
lemmer = MorphAnalyzer(lexicon=lex_from_lines)
11479
analysis = lemmer.analyze('elma')
115-
print(analysis)
11680
assert analysis is not None
11781
analysis = lemmer.analyze('beyazlaştırıcı')
118-
print(analysis)
11982
assert analysis is not None
12083
assert 'beyaz' in lemmer.lemmatize('beyazlaştı')[0][1]
12184
assert 'elma' in lemmer.lemmatize('elmalı')[0][1]

0 commit comments

Comments
 (0)