Spaces:
Running
Running
Yurii Paniv
commited on
Commit
·
8c4bd28
1
Parent(s):
513889f
Add tests for converter
Browse files- converter.py +6 -0
- requirements-dev.txt +3 -0
- requirements-test.txt +1 -0
- requirements.txt +0 -0
- tests/__init__.py +0 -0
- tests/rosetta.csv +23 -43
- tests/test_converter.py +115 -0
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
|
| 6 |
-
Köksünde yatqanımn
|
| 7 |
-
Diñleyim
|
| 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
|