Skip to content

Commit e5a2043

Browse files
committed
add tests
1 parent c353205 commit e5a2043

File tree

1 file changed

+69
-0
lines changed

1 file changed

+69
-0
lines changed

tests/test_prediction.py

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,75 @@ def record_dawg(self):
4949

5050

5151

52+
@pytest.mark.parametrize(("word", "prediction"), SUITE)
53+
def test_dawg_prediction(self, word, prediction):
54+
d = dawg_python.DAWG().load(data_path("small", "prediction.dawg"))
55+
assert d.similar_keys(word, self.REPLACES) == prediction
56+
57+
@pytest.mark.parametrize(("word", "prediction"), SUITE)
58+
def test_record_dawg_prediction(self, word, prediction):
59+
d = self.record_dawg()
60+
assert d.similar_keys(word, self.REPLACES) == prediction
61+
62+
@pytest.mark.parametrize(("word", "prediction"), SUITE_ITEMS)
63+
def test_record_dawg_items(self, word, prediction):
64+
d = self.record_dawg()
65+
assert d.similar_items(word, self.REPLACES) == prediction
66+
67+
@pytest.mark.parametrize(("word", "prediction"), SUITE_VALUES)
68+
def test_record_dawg_items_values(self, word, prediction):
69+
d = self.record_dawg()
70+
assert d.similar_item_values(word, self.REPLACES) == prediction
71+
72+
class TestMultiValuedPrediction(object):
73+
74+
REPLACES = dawg_python.DAWG.compile_replaces({'е': ['ё', 'ѣ'], 'и': 'і'})
75+
76+
DATA = "хлѣб ёлка ель лѣс лѣсное всё всѣ бѣлёная изобрѣтён лев лёв лѣв вѣнскій".split(" ")
77+
SUITE = [
78+
('осел', []),
79+
('ель', ['ель']),
80+
('ёль', []),
81+
('хлеб', ['хлѣб']),
82+
('елка', ['ёлка']),
83+
('лесное', ['лѣсное']),
84+
('лесноё', []),
85+
('лёсное', []),
86+
('изобретен', ['изобрѣтён']),
87+
('беленая', ['бѣлёная']),
88+
('белёная', ['бѣлёная']),
89+
('бѣленая', ['бѣлёная']),
90+
('бѣлёная', ['бѣлёная']),
91+
('белѣная', []),
92+
('бѣлѣная', []),
93+
('все', ['всё', 'всѣ']),
94+
('лев', ['лев', 'лёв', 'лѣв']),
95+
('венский', ['вѣнскій']),
96+
]
97+
98+
SUITE_ITEMS = [
99+
(
100+
it[0], # key
101+
[
102+
(w, [(len(w),)]) # item, value pair
103+
for w in it[1]
104+
]
105+
)
106+
for it in SUITE
107+
]
108+
109+
SUITE_VALUES = [
110+
(
111+
it[0], # key
112+
[[(len(w),)] for w in it[1]]
113+
)
114+
for it in SUITE
115+
]
116+
117+
def record_dawg(self):
118+
path = data_path("small", "prediction-record.dawg")
119+
return dawg_python.RecordDAWG(str("=H")).load(path)
120+
52121
@pytest.mark.parametrize(("word", "prediction"), SUITE)
53122
def test_dawg_prediction(self, word, prediction):
54123
d = dawg_python.DAWG().load(data_path("small", "prediction.dawg"))

0 commit comments

Comments
 (0)