Yurii Paniv commited on
Commit
8c4bd28
1 Parent(s): 513889f

Add tests for converter

Browse files
converter.py ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ def to_cyrillic(text):
2
+ pass
3
+
4
+
5
+ def to_latin(text):
6
+ pass
requirements-dev.txt ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ -r requirements.txt
2
+ -r requirements-test.txt
3
+ black
requirements-test.txt ADDED
@@ -0,0 +1 @@
 
 
1
+ pytest==7.1.3
requirements.txt ADDED
File without changes
tests/__init__.py ADDED
File without changes
tests/rosetta.csv CHANGED
@@ -1,43 +1,23 @@
1
- Vasiyet Васиет
2
- Ölsem, meni kömüñiz Ольсем, мени комюнъиз
3
- Ukraynamnıñ bağrına, Mezarımnı qazıñız Украйнамнынъ багърына, Мезарымны къазынъыз
4
- Qulan çöl toprağına. Къулан чёль топрагъына.
5
- Bileyim men qurğannıñ Билейим мен къургъаннынъ
6
- Köksünde yatqanımnı, Коксюнде яткъанымны,
7
- Diñleyim Dneprniñ Динълейим Днепрнинъ
8
- Quturıp aqqanını. Къутурып акъкъаныны.
9
- Ne vaqıt o duşman qanın Не вакъыт о душман къанын
10
- Ukrayna üzerinden Украйна узеринден
11
- Yuvıp keter… tek o zaman Ювып кетер… тек о заман
12
- Turarım men qabrimden Турарым мен къабримден —
13
- Dua etip tek o zaman Дуа этип тек о заман
14
- Çıqarım arş-alâğa, Oña qadar mende yoqtır Чыкъарым арш-алягъа, Онъа къадар менде ёкътыр
15
- İşanç Alla-Taalâğa. Ишанч Алла-Таалягъа.
16
- Meni cıyıp, qalqıñız ve Мени джыйып, къалкъынъыз ве
17
- Üzüñiz buğavlarnı, Узюнъиз бугъавларны
18
- Zalım duşman qanı ile Залым душман къаны иле
19
- Yuvuñız diyarlarnı, Ювунъыз диярларны,
20
- Ulu, ür bir ailege Улу, урь бир аилеге
21
- Birleşilgen künlerde. Бирлешильген куньлерде.
22
- Unutmayıp — eyi söznen Унутмайып — эйи сёзнен
23
- Hatırlañız meni de. Хатырланъыз мени де.
24
-
25
-
26
-
27
-
28
-
29
-
30
-
31
-
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
-
40
-
41
-
42
-
43
-
 
1
+ Vasiyet|Васиет
2
+ Ölsem, meni kömüñiz|Ольсем, мени комюнъиз
3
+ Ukraynamnıñ bağrına, Mezarımnı qazıñız|Украйнамнынъ багърына, Мезарымны къазынъыз
4
+ Qulan çöl toprağına.|Къулан чёль топрагъына.
5
+ Bileyim men qurğannıñ|Билейим мен къургъаннынъ
6
+ Köksünde yatqanımnı,|Коксюнде яткъанымны,
7
+ Diñleyim Dneprniñ|Динълейим Днепрнинъ
8
+ Quturıp aqqanını.|Къутурып акъкъаныны.
9
+ Ne vaqıt o duşman qanın|Не вакъыт о душман къанын
10
+ Ukrayna üzerinden|Украйна узеринден
11
+ Yuvıp keter… tek o zaman|Ювып кетер… тек о заман
12
+ Turarım men qabrimden —|Турарым мен къабримден —
13
+ Dua etip tek o zaman|Дуа этип тек о заман
14
+ Çıqarım arş-alâğa, Oña qadar mende yoqtır|Чыкъарым арш-алягъа, Онъа къадар менде ёкътыр
15
+ İşanç Alla-Taalâğa.|Ишанч Алла-Таалягъа.
16
+ Meni cıyıp, qalqıñız ve|Мени джыйып, къалкъынъыз ве
17
+ Üzüñiz buğavlarnı,|Узюнъиз бугъавларны
18
+ Zalım duşman qanı ile|Залым душман къаны иле
19
+ Yuvuñız diyarlarnı,|Ювунъыз диярларны,
20
+ Ulu, ür bir ailege|Улу, урь бир аилеге
21
+ Birleşilgen künlerde.|Бирлешильген куньлерде.
22
+ Unutmayıp — eyi söznen|Унутмайып — эйи сёзнен
23
+ Hatırlañız meni de.|Хатырланъыз мени де.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
tests/test_converter.py ADDED
@@ -0,0 +1,115 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import converter
2
+
3
+
4
+ def test_cyrillic_converter():
5
+ cases = _read_test_cases()
6
+ for case in cases:
7
+ assert converter.to_cyrillic(case[0]) == case[1]
8
+
9
+
10
+ def test_latin_converter():
11
+ cases = _read_test_cases()
12
+ print(cases)
13
+ for case in cases:
14
+ assert converter.to_latin(case[1]) == case[0]
15
+
16
+
17
+ def test_letter_coverage():
18
+ """
19
+ Check if all letters are present in a test set.
20
+ """
21
+ latin_alphabet = [
22
+ "a",
23
+ "â",
24
+ "b",
25
+ "c",
26
+ "ç",
27
+ "d",
28
+ "e",
29
+ "f",
30
+ "g",
31
+ "ğ",
32
+ "h",
33
+ "ı",
34
+ "i",
35
+ "j",
36
+ "k",
37
+ "l",
38
+ "m",
39
+ "n",
40
+ "ñ",
41
+ "o",
42
+ "ö",
43
+ "p",
44
+ "q",
45
+ "r",
46
+ "s",
47
+ "ş",
48
+ "t",
49
+ "u",
50
+ "ü",
51
+ "v",
52
+ "y",
53
+ "z",
54
+ ]
55
+ cyrillic_alphabet = [
56
+ "а",
57
+ "б",
58
+ "в",
59
+ "г",
60
+ "гъ",
61
+ "д",
62
+ "е",
63
+ "ё",
64
+ "ж",
65
+ "з",
66
+ "и",
67
+ "й",
68
+ "к",
69
+ "къ",
70
+ "л",
71
+ "м",
72
+ "н",
73
+ "нъ",
74
+ "о",
75
+ "п",
76
+ "р",
77
+ "с",
78
+ "т",
79
+ "у",
80
+ "ф",
81
+ "х",
82
+ "ц",
83
+ "ч",
84
+ "дж",
85
+ "ш",
86
+ "щ",
87
+ "ъ",
88
+ "ы",
89
+ "ь",
90
+ "э",
91
+ "ю",
92
+ "я",
93
+ ]
94
+ cases = _read_test_cases()
95
+ missing_letters = []
96
+ latin_cases = " ".join([case[0] for case in cases]).lower()
97
+ for letter in latin_alphabet:
98
+ if letter not in latin_cases:
99
+ missing_letters.append(letter)
100
+ cyrillic_cases = " ".join([case[1] for case in cases]).lower()
101
+ for letter in cyrillic_alphabet:
102
+ if letter not in cyrillic_cases:
103
+ missing_letters.append(letter)
104
+ if len(missing_letters) > 0:
105
+ raise Exception(f"'{missing_letters}' not found in test dataset!")
106
+
107
+
108
+ def _read_test_cases():
109
+ with open("tests/rosetta.csv") as file:
110
+ text = file.read()
111
+
112
+ rows = text.split("\n")
113
+ for i in range(0, len(rows)):
114
+ rows[i] = rows[i].split("|")
115
+ return rows