Completed
Push — master ( e3c4b4...242a5b )
by Artem
01:41
created

testTransliterationFromUkrainianToEnglish()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 2
1
<?php
2
/*
3
 * This file is part of the Transliteration library
4
 *
5
 * (c) Artem Genvald <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 */
10
11
namespace Tests\Fresh\Transliteration;
12
13
use Fresh\Transliteration\Transliterator;
14
15
/**
16
 * UkrainianToEnglish Transliterator Test.
17
 *
18
 * @author Artem Genvald <[email protected]>
19
 */
20
class UkrainianToEnglishTest extends \PHPUnit_Framework_TestCase
21
{
22
    protected $transliterator;
23
24
    public function setUp()
25
    {
26
        $this->transliterator = new Transliterator();
27
    }
28
29
    /**
30
     * @dataProvider dataProvider
31
     */
32
    public function testTransliterationFromUkrainianToEnglish($ukrainianText, $transliteratedText)
33
    {
34
        $this->assertEquals($transliteratedText, $this->transliterator->ukToEn($ukrainianText));
35
    }
36
37
    public function dataProvider()
38
    {
39
        return [
40
            // Ukrainian alphabet
41
            ['А', 'A'],
42
            ['Б', 'B'],
43
            ['В', 'V'],
44
            ['Г', 'H'],
45
            ['Ґ', 'G'],
46
            ['Д', 'D'],
47
            ['Е', 'E'],
48
            ['Є', 'Ye'],
49
            ['Ж', 'Zh'],
50
            ['З', 'Z'],
51
            ['И', 'Y'],
52
            ['І', 'I'],
53
            ['Ї', 'Yi'],
54
            ['Й', 'Y'],
55
            ['К', 'K'],
56
            ['Л', 'L'],
57
            ['М', 'M'],
58
            ['Н', 'N'],
59
            ['О', 'O'],
60
            ['П', 'P'],
61
            ['Р', 'R'],
62
            ['С', 'S'],
63
            ['Т', 'T'],
64
            ['У', 'U'],
65
            ['Ф', 'F'],
66
            ['Х', 'Kh'],
67
            ['Ц', 'Ts'],
68
            ['Ч', 'Ch'],
69
            ['Ш', 'Sh'],
70
            ['Щ', 'Shch'],
71
            ['Ю', 'Yu'],
72
            ['Я', 'Ya'],
73
            ['а', 'a'],
74
            ['б', 'b'],
75
            ['в', 'v'],
76
            ['г', 'h'],
77
            ['ґ', 'g'],
78
            ['д', 'd'],
79
            ['е', 'e'],
80
            ['є', 'ie'],
81
            ['ж', 'zh'],
82
            ['з', 'z'],
83
            ['и', 'y'],
84
            ['і', 'i'],
85
            ['ї', 'i'],
86
            ['й', 'i'],
87
            ['к', 'k'],
88
            ['л', 'l'],
89
            ['м', 'm'],
90
            ['н', 'n'],
91
            ['о', 'o'],
92
            ['п', 'p'],
93
            ['р', 'r'],
94
            ['с', 's'],
95
            ['т', 't'],
96
            ['у', 'u'],
97
            ['ф', 'f'],
98
            ['х', 'kh'],
99
            ['ц', 'ts'],
100
            ['ч', 'ch'],
101
            ['ш', 'sh'],
102
            ['щ', 'shch'],
103
            ['ь', ''],
104
            ['ю', 'iu'],
105
            ['я', 'ia'],
106
            ['\'', ''],
107
            ['', ''],
108
            ['-', '-'],
109
            ['!', '!'],
110
            [',', ','],
111
            ['.', '.'],
112
            [' ', ' '],
113
114
            // Examples of transliteration form the resolution of the Cabinet of Ministers of Ukraine №55 (27.01.2010)
115
            // Аа
116
            ['Алушта', 'Alushta'],
117
            ['Андрій', 'Andrii'],
118
            // Бб
119
            ['Борщагівка', 'Borshchahivka'],
120
            ['Борисенко',  'Borysenko'],
121
            // Вв
122
            ['Вінниця',   'Vinnytsia'],
123
            ['Володимир', 'Volodymyr'],
124
            // Гг
125
            ['Гадяч',     'Hadiach'],
126
            ['Богдан',    'Bohdan'],
127
            ['Згурський', 'Zghurskyi'],
128
            // Ґґ
129
            ['Ґалаґан', 'Galagan'],
130
            ['Ґорґани', 'Gorgany'],
131
            // Дд
132
            ['Донецьк', 'Donetsk'],
133
            ['Дмитро',  'Dmytro'],
134
            // Ее
135
            ['Рівне',  'Rivne'],
136
            ['Олег',   'Oleh'],
137
            ['Есмань', 'Esman'],
138
            // Єє
139
            ['Єнакієве', 'Yenakiieve'],
140
            ['Гаєвич',   'Haievych'],
141
            ['Короп\'є', 'Koropie'],
142
            // Жж
143
            ['Житомир', 'Zhytomyr'],
144
            ['Жанна',   'Zhanna'],
145
            ['Жежелів', 'Zhezheliv'],
146
            // Зз
147
            ['Закарпаття', 'Zakarpattia'],
148
            ['Казимирчук', 'Kazymyrchuk'],
149
            // Ии
150
            ['Медвин',     'Medvyn'],
151
            ['Михайленко', 'Mykhailenko'],
152
            // Іі
153
            ['Іванків',  'Ivankiv'],
154
            ['Іващенко', 'Ivashchenko'],
155
            // Її
156
            ['Їжакевич', 'Yizhakevych'],
157
            ['Кадиївка', 'Kadyivka'],
158
            ['Мар\'їне', 'Marine'],
159
            // Йй
160
            ['Йосипівка', 'Yosypivka'],
161
            ['Стрий',     'Stryi'],
162
            ['Олексій',   'Oleksii'],
163
            // Кк
164
            ['Київ',      'Kyiv'],
165
            ['Коваленко', 'Kovalenko'],
166
            // Лл
167
            ['Лебедин', 'Lebedyn'],
168
            ['Леонід',  'Leonid'],
169
            // Мм
170
            ['Миколаїв', 'Mykolaiv'],
171
            ['Маринич',  'Marynych'],
172
            // Нн
173
            ['Ніжин',   'Nizhyn'],
174
            ['Наталія', 'Nataliia'],
175
            // Оо
176
            ['Одеса',    'Odesa'],
177
            ['Онищенко', 'Onyshchenko'],
178
            // Пп
179
            ['Полтава', 'Poltava'],
180
            ['Петро',   'Petro'],
181
            // Рр
182
            ['Решетилівка', 'Reshetylivka'],
183
            ['Рибчинський', 'Rybchynskyi'],
184
            // Сс
185
            ['Суми',    'Sumy'],
186
            ['Соломія', 'Solomiia'],
187
            // Тт
188
            ['Тернопіль', 'Ternopil'],
189
            ['Троць',     'Trots'],
190
            // Уу
191
            ['Ужгород', 'Uzhhorod'],
192
            ['Уляна',   'Uliana'],
193
            // Фф
194
            ['Фастів',   'Fastiv'],
195
            ['Філіпчук', 'Filipchuk'],
196
            // Хх
197
            ['Харків',   'Kharkiv'],
198
            ['Христина', 'Khrystyna'],
199
            // Цц
200
            ['Біла Церква', 'Bila Tserkva'],
201
            ['Стеценко',    'Stetsenko'],
202
            // Чч
203
            ['Чернівці', 'Chernivtsi'],
204
            ['Шевченко', 'Shevchenko'],
205
            // Шш
206
            ['Шостка',   'Shostka'],
207
            ['Кишеньки', 'Kyshenky'],
208
            // Щщ
209
            ['Щербухи',   'Shcherbukhy'],
210
            ['Гоща',      'Hoshcha'],
211
            ['Гаращенко', 'Harashchenko'],
212
            // Юю
213
            ['Юрій',      'Yurii'],
214
            ['Корюківка', 'Koriukivka'],
215
            // Яя
216
            ['Яготин',     'Yahotyn'],
217
            ['Ярошенко',   'Yaroshenko'],
218
            ['Костянтин',  'Kostiantyn'],
219
            ['Знам\'янка', 'Znamianka'],
220
            ['Феодосія',   'Feodosiia'],
221
            // Some text
222
            ['Добрий день', 'Dobryi den'],
223
            ['Привіт світ!', 'Pryvit svit!'],
224
        ];
225
    }
226
}
227