├── AUTHORS ├── Docs ├── NameCaseLib │ ├── NCL.html │ ├── NCLNameCaseCore.html │ ├── NCLNameCaseInterface.html │ ├── NCLNameCaseRu.html │ ├── NCLNameCaseUa.html │ ├── NCLNameCaseWord.html │ ├── NCLStr.html │ ├── _NCL---NCL.php.html │ ├── _NCL---NCLNameCaseCore.php.html │ ├── _NCL---NCLNameCaseInterface.php.html │ ├── _NCL---NCLNameCaseWord.php.html │ ├── _NCL---NCLStr.php.html │ ├── _NCL.NameCase.ru.php.html │ └── _NCL.NameCase.ua.php.html ├── blank.html ├── classtrees_NameCaseLib.html ├── classtrees_default.html ├── default │ ├── NCL.html │ ├── NCLNameCaseCore.html │ ├── NCLNameCaseInterface.html │ ├── NCLNameCaseRu.html │ ├── NCLNameCaseUa.html │ ├── NCLNameCaseWord.html │ ├── NCLStr.html │ ├── _NCL---NCL.php.html │ ├── _NCL---NCLNameCaseCore.php.html │ ├── _NCL---NCLNameCaseInterface.php.html │ ├── _NCL---NCLNameCaseWord.php.html │ ├── _NCL---NCLStr.php.html │ ├── _NCL.NameCase.ru.php.html │ └── _NCL.NameCase.ua.php.html ├── elementindex.html ├── elementindex_NameCaseLib.html ├── elementindex_default.html ├── errors.html ├── index.html ├── li_NameCaseLib.html ├── li_default.html ├── media │ ├── banner.css │ └── stylesheet.css └── packages.html ├── GPL-LICENSE ├── Library ├── NCL │ ├── NCL.php │ ├── NCLNameCaseCore.php │ ├── NCLNameCaseWord.php │ └── NCLStr.php ├── NCLNameCaseRu.php └── NCLNameCaseUa.php ├── MIT-LICENSE ├── README.md ├── Tests ├── AutoTest │ └── Endings │ │ ├── .gitignore │ │ ├── BatchTester.php │ │ └── EndingsCompiler.php ├── Library │ ├── CoreMethodsTest.php │ ├── CrazyTestFatherboy.php │ ├── CrazyTestFathergirl.php │ ├── CrazyTestNamesboy.php │ ├── CrazyTestNamesgirl.php │ ├── CrazyTestSirnamesboy.php │ ├── CrazyTestSirnamesgirl.php │ ├── GenderDetectBoth.php │ ├── GenderDetectUABoth.php │ ├── GenderDetectUAname.php │ ├── GenderDetectUAsirname.php │ ├── GenderDetectname.php │ ├── GenderDetectsirname.php │ ├── NCLNameCaseRuTestFatherboy.php │ ├── NCLNameCaseRuTestFathergirl.php │ ├── NCLNameCaseRuTestNamesboy.php │ ├── NCLNameCaseRuTestNamesgirl.php │ ├── NCLNameCaseRuTestSirnamesboy.php │ ├── NCLNameCaseRuTestSirnamesgirl.php │ ├── NCLNameCaseUaTestFatherboy.php │ ├── NCLNameCaseUaTestFathergirl.php │ ├── NCLNameCaseUaTestNamesboy.php │ ├── NCLNameCaseUaTestNamesgirl.php │ ├── NCLNameCaseUaTestSirnamesboy.php │ ├── NCLNameCaseUaTestSirnamesgirl.php │ ├── NameSplitUAfather.php │ ├── NameSplitUAname.php │ ├── NameSplitUAsirname.php │ ├── NameSplitfather.php │ ├── NameSplitname.php │ └── NameSplitsirname.php ├── TestGenerator │ ├── CrazyNCLNameCaseUAGenerator.php │ ├── GenderDetector.both.php.php │ ├── GenderDetector.generator.php.php │ ├── NCLNameCaseRuTest.generator.php │ ├── NCLNameCaseUAGenerator.php │ ├── Names │ │ ├── boy_SF.txt │ │ ├── boy_full.txt │ │ ├── boy_full_result.txt │ │ ├── girl_SF.txt │ │ ├── girl_full.txt │ │ └── girl_full_result.txt │ ├── NamesAll │ │ ├── boyfather.txt │ │ ├── boyname.txt │ │ ├── boysirname.txt │ │ ├── compile.php │ │ ├── compile2.php │ │ ├── girlfather.txt │ │ ├── girlname.txt │ │ ├── girlsirname.txt │ │ └── importDB.php │ ├── Template │ │ ├── GenderGenBoth.test │ │ ├── GenderGenname.test │ │ ├── GenderGensirname.test │ │ ├── NCLNameCaseCrazyTest.test │ │ ├── NCLNameCaseRuTest.main │ │ ├── NCLNameCaseRuTestFatherboy.test │ │ ├── NCLNameCaseRuTestFathergirl.test │ │ ├── NCLNameCaseRuTestNamesboy.test │ │ ├── NCLNameCaseRuTestNamesgirl.test │ │ ├── NCLNameCaseRuTestSirnamesboy.test │ │ ├── NCLNameCaseRuTestSirnamesgirl.test │ │ ├── NCLNameCaseUaTest.main │ │ └── NameSplit.test │ ├── UAGenderDetector.both.php.php │ ├── UAGenderDetector.generator.php.php │ ├── UAnameSplit.generator.php.php │ ├── YandexLoader.php │ ├── nameSplit.generator.php.php │ └── uagenerator │ │ ├── boyfather.txt │ │ ├── boyname.txt │ │ ├── boysecond.txt │ │ ├── girlFatherDB.php │ │ ├── girlSecondDB.php │ │ ├── girlfather.txt │ │ ├── girlname.txt │ │ ├── girlsecond.txt │ │ ├── loadDB.php │ │ ├── manFatherDB.php │ │ ├── manSecondDB.php │ │ ├── savegirls.php │ │ ├── saveme.php │ │ └── testFromDB.php └── debug.php └── Tutorial ├── lesson1.php ├── lesson2.php ├── lesson3.php ├── lesson4.php ├── lesson5.1.php ├── lesson5.2.php ├── lesson5.3.php ├── lesson6.php └── lesson7.php /AUTHORS: -------------------------------------------------------------------------------- 1 | Core developer 2 | * Andriy Chaika (andriy@chaika.in.ua) 3 | * Rabotyahoff (https://github.com/Rabotyahoff) 4 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/NCL.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs For Class NCL 7 | 8 | 9 | 10 | 11 |
12 |

Class NCL

13 | 14 | 15 |
16 |
Description
17 | 22 |
23 | 24 |

Класс, который содержит основные константы библиотеки:

  • индексы мужского и женского пола
  • индексы всех падежей

25 |
    26 |
  • author: Андрей Чайка <bymer3@gmail.com>
  • 27 |
  • version: 0.4.1
  • 28 |
29 |

30 | Located in /NCL/NCL.php (line 16) 31 |

32 | 33 | 34 |

 35 | 	
 36 | 			
37 |
38 | 39 | 40 |
41 |
Direct descendents
42 | 47 |
48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 58 | 59 |
ClassDescription
NCLNameCaseCore 56 | NCL NameCase Core 57 |
60 |
61 |
62 | 63 | 64 | 65 |
66 |
Variable Summary
67 | 72 |
73 |
74 |
75 | static mixed 76 | $DATELN 77 |
78 |
79 | static mixed 80 | $IMENITLN 81 |
82 |
83 | static mixed 84 | $MAN 85 |
86 |
87 | static mixed 88 | $PREDLOGN 89 |
90 |
91 | static mixed 92 | $RODITLN 93 |
94 |
95 | static mixed 96 | $TVORITELN 97 |
98 |
99 | static mixed 100 | $UaDavalnyi 101 |
102 |
103 | static mixed 104 | $UaKlychnyi 105 |
106 |
107 | static mixed 108 | $UaMiszevyi 109 |
110 |
111 | static mixed 112 | $UaNazyvnyi 113 |
114 |
115 | static mixed 116 | $UaOrudnyi 117 |
118 |
119 | static mixed 120 | $UaRodovyi 121 |
122 |
123 | static mixed 124 | $UaZnahidnyi 125 |
126 |
127 | static mixed 128 | $VINITELN 129 |
130 |
131 | static mixed 132 | $WOMAN 133 |
134 |
135 |
136 |
137 | 138 | 139 | 140 |
141 |
Variables
142 | 149 |
150 | 151 |
152 | 153 |
154 | 155 | static mixed 156 | $DATELN 157 | = 2 (line 46) 158 | 159 |
160 | 161 | 162 |

Дательный падеж

163 | 164 | 165 | 166 | 167 | 168 |
169 | 170 |
171 | 172 |
173 | 174 | static mixed 175 | $IMENITLN 176 | = 0 (line 34) 177 | 178 |
179 | 180 | 181 |

Именительный падеж

182 | 183 | 184 | 185 | 186 | 187 |
188 | 189 |
190 | 191 |
192 | 193 | static mixed 194 | $MAN 195 | = 1 (line 22) 196 | 197 |
198 | 199 | 200 |

Мужской пол

201 | 202 | 203 | 204 | 205 | 206 |
207 | 208 |
209 | 210 |
211 | 212 | static mixed 213 | $PREDLOGN 214 | = 5 (line 64) 215 | 216 |
217 | 218 | 219 |

Предложный падеж

220 | 221 | 222 | 223 | 224 | 225 |
226 | 227 |
228 | 229 |
230 | 231 | static mixed 232 | $RODITLN 233 | = 1 (line 40) 234 | 235 |
236 | 237 | 238 |

Родительный падеж

239 | 240 | 241 | 242 | 243 | 244 |
245 | 246 |
247 | 248 |
249 | 250 | static mixed 251 | $TVORITELN 252 | = 4 (line 58) 253 | 254 |
255 | 256 | 257 |

Творительный падеж

258 | 259 | 260 | 261 | 262 | 263 |
264 | 265 |
266 | 267 |
268 | 269 | static mixed 270 | $UaDavalnyi 271 | = 2 (line 82) 272 | 273 |
274 | 275 | 276 |

Давальний відмінок

277 | 278 | 279 | 280 | 281 | 282 |
283 | 284 |
285 | 286 |
287 | 288 | static mixed 289 | $UaKlychnyi 290 | = 6 (line 106) 291 | 292 |
293 | 294 | 295 |

Кличний відмінок

296 | 297 | 298 | 299 | 300 | 301 |
302 | 303 |
304 | 305 |
306 | 307 | static mixed 308 | $UaMiszevyi 309 | = 5 (line 100) 310 | 311 |
312 | 313 | 314 |

Місцевий відмінок

315 | 316 | 317 | 318 | 319 | 320 |
321 | 322 |
323 | 324 |
325 | 326 | static mixed 327 | $UaNazyvnyi 328 | = 0 (line 70) 329 | 330 |
331 | 332 | 333 |

Назвиний відмінок

334 | 335 | 336 | 337 | 338 | 339 |
340 | 341 |
342 | 343 |
344 | 345 | static mixed 346 | $UaOrudnyi 347 | = 4 (line 94) 348 | 349 |
350 | 351 | 352 |

Орудний відмінок

353 | 354 | 355 | 356 | 357 | 358 |
359 | 360 |
361 | 362 |
363 | 364 | static mixed 365 | $UaRodovyi 366 | = 1 (line 76) 367 | 368 |
369 | 370 | 371 |

Родовий відмінок

372 | 373 | 374 | 375 | 376 | 377 |
378 | 379 |
380 | 381 |
382 | 383 | static mixed 384 | $UaZnahidnyi 385 | = 3 (line 88) 386 | 387 |
388 | 389 | 390 |

Знахідний відмінок

391 | 392 | 393 | 394 | 395 | 396 |
397 | 398 |
399 | 400 |
401 | 402 | static mixed 403 | $VINITELN 404 | = 3 (line 52) 405 | 406 |
407 | 408 | 409 |

Винительный падеж

410 | 411 | 412 | 413 | 414 | 415 |
416 | 417 |
418 | 419 |
420 | 421 | static mixed 422 | $WOMAN 423 | = 2 (line 28) 424 | 425 |
426 | 427 | 428 |

Женский пол

429 | 430 | 431 | 432 | 433 | 434 |
435 | 436 |
437 |
438 | 439 | 440 | 441 |

442 | Documentation generated on Sat, 09 Jul 2011 17:55:19 +0300 by phpDocumentor 1.4.3 443 |

444 |
445 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL---NCL.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCL.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCL.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 |
    24 |
  • license: Dual
  • 25 |
26 | 27 |
28 |
29 | 30 | 31 |
32 |
Classes
33 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 50 | 51 |
ClassDescription
45 | NCL 46 | 48 | Класс, который содержит основные константы библиотеки:
  • индексы мужского и женского пола
  • индексы всех падежей
49 |
52 |
53 |
54 | 55 | 56 | 57 | 58 | 59 |

60 | Documentation generated on Sat, 09 Jul 2011 17:55:19 +0300 by phpDocumentor 1.4.3 61 |

62 |
63 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL---NCLNameCaseCore.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLNameCaseCore.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLNameCaseCore.php

13 | 14 | 15 |
16 |
Description
17 | 23 |
24 | 25 |
    26 |
  • license: Dual
  • 27 |
28 | 29 |
30 |
31 | 32 | 33 |
34 |
Classes
35 | 41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 | 51 | 54 | 55 |
ClassDescription
49 | NCLNameCaseCore 50 | 52 | NCL NameCase Core 53 |
56 |
57 |
58 | 59 | 60 |
61 |
Includes
62 | 68 |
69 | 70 |
71 | 72 |
73 | 74 | require_once 75 | (NCL_DIR.'/NCL.php') 76 | (line 15) 77 | 78 |
79 | 80 | 81 | 82 |
83 | 84 |
85 | 86 |
87 | 88 | require_once 89 | (NCL_DIR.'/NCLNameCaseWord.php') 90 | (line 17) 91 | 92 |
93 | 94 | 95 | 96 |
97 | 98 |
99 | 100 |
101 | 102 | require_once 103 | (NCL_DIR.'/NCLStr.php') 104 | (line 16) 105 | 106 |
107 | 108 | 109 | 110 |
111 |
112 |
113 | 114 | 115 |
116 |
Constants
117 | 123 |
124 | 125 |
126 | 127 |
128 | 129 | NCL_DIR = dirname(__FILE__) 130 | (line 12) 131 | 132 |
133 | 134 | 135 | 136 | 137 |
138 |
139 |
140 | 141 | 142 | 143 |

144 | Documentation generated on Sat, 09 Jul 2011 17:55:19 +0300 by phpDocumentor 1.4.3 145 |

146 |
147 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL---NCLNameCaseInterface.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLNameCaseInterface.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLNameCaseInterface.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 |
    24 |
  • license: Dual
  • 25 |
26 | 27 |
28 |
29 | 30 | 31 |
32 |
Classes
33 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 50 | 51 |
ClassDescription
45 | NCLNameCaseInterface 46 | 48 | Интерфейс для русского и украинского языка 49 |
52 |
53 |
54 | 55 | 56 | 57 | 58 | 59 |

60 | Documentation generated on Thu, 07 Jul 2011 00:01:02 +0300 by phpDocumentor 1.4.3 61 |

62 |
63 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL---NCLNameCaseWord.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLNameCaseWord.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLNameCaseWord.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 |
    24 |
  • license: Dual
  • 25 |
26 | 27 |
28 |
29 | 30 | 31 |
32 |
Classes
33 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 50 | 51 |
ClassDescription
45 | NCLNameCaseWord 46 | 48 | NCLNameCaseWord - класс, который служит для хранения всей информации о каждом слове 49 |
52 |
53 |
54 | 55 | 56 | 57 | 58 | 59 |

60 | Documentation generated on Sat, 09 Jul 2011 17:55:20 +0300 by phpDocumentor 1.4.3 61 |

62 |
63 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL---NCLStr.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLStr.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLStr.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 |
    24 |
  • license: Dual
  • 25 |
26 | 27 |
28 |
29 | 30 | 31 |
32 |
Classes
33 | 37 |
38 | 39 | 40 | 41 | 42 | 43 | 44 | 47 | 50 | 51 |
ClassDescription
45 | NCLStr 46 | 48 | Класс содержит функции для работы со строками, которые используются в NCLNameCaseLib 49 |
52 |
53 |
54 | 55 | 56 | 57 | 58 | 59 |

60 | Documentation generated on Sat, 09 Jul 2011 17:55:20 +0300 by phpDocumentor 1.4.3 61 |

62 |
63 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL.NameCase.ru.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCL.NameCase.ru.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL.NameCase.ru.php

13 | 14 | 15 |
16 |
Description
17 | 22 |
23 | 24 |
    25 |
  • license: Dual
  • 26 |
27 | 28 |
29 |
30 | 31 | 32 |
33 |
Classes
34 | 39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 52 | 53 |
ClassDescription
47 | NCLNameCaseRu 48 | 50 | NCL NameCase Russian Language 51 |
54 |
55 |
56 | 57 | 58 |
59 |
Includes
60 | 65 |
66 | 67 |
68 | 69 |
70 | 71 | require_once 72 | (dirname(__FILE__).'/NCL/NCLNameCaseCore.php') 73 | (line 10) 74 | 75 |
76 | 77 | 78 | 79 |
80 |
81 |
82 | 83 | 84 | 85 | 86 |

87 | Documentation generated on Sat, 09 Jul 2011 17:55:17 +0300 by phpDocumentor 1.4.3 88 |

89 |
90 | -------------------------------------------------------------------------------- /Docs/NameCaseLib/_NCL.NameCase.ua.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCL.NameCase.ua.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL.NameCase.ua.php

13 | 14 | 15 |
16 |
Description
17 | 22 |
23 | 24 |
    25 |
  • license: Dual
  • 26 |
27 | 28 |
29 |
30 | 31 | 32 |
33 |
Classes
34 | 39 |
40 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 52 | 53 |
ClassDescription
47 | NCLNameCaseUa 48 | 50 | NCL NameCase Ukranian Language 51 |
54 |
55 |
56 | 57 | 58 |
59 |
Includes
60 | 65 |
66 | 67 |
68 | 69 |
70 | 71 | require_once 72 | (dirname(__FILE__).'/NCL/NCLNameCaseCore.php') 73 | (line 10) 74 | 75 |
76 | 77 | 78 | 79 |
80 |
81 |
82 | 83 | 84 | 85 | 86 |

87 | Documentation generated on Sat, 09 Jul 2011 17:55:18 +0300 by phpDocumentor 1.4.3 88 |

89 |
90 | -------------------------------------------------------------------------------- /Docs/blank.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Generated Documentation 4 | 5 | 6 | 7 | 8 |

Generated Documentation

9 | Welcome to NameCaseLib!
10 |
11 | This documentation was generated by phpDocumentor v1.4.3
12 | 13 | -------------------------------------------------------------------------------- /Docs/classtrees_NameCaseLib.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

14 | 15 |

16 |

Root class NCL

17 | 23 | 24 |

Root class NCLNameCaseWord

25 | 27 | 28 |

Root class NCLStr

29 | 31 | 32 |

33 | Documentation generated on Sat, 09 Jul 2011 17:55:17 +0300 by phpDocumentor 1.4.3 34 |

35 | 36 | -------------------------------------------------------------------------------- /Docs/classtrees_default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |

14 | 15 |

16 |

Root interface NCLNameCaseInterface

17 | 19 | 20 |

Root class NCL

21 | 27 | 28 |

Root class NCLNameCaseWord

29 | 31 | 32 |

Root class NCLStr

33 | 35 | 36 |

37 | Documentation generated on Wed, 06 Jul 2011 13:46:15 +0300 by phpDocumentor 1.4.3 38 |

39 | 40 | -------------------------------------------------------------------------------- /Docs/default/NCL.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs For Class NCL 7 | 8 | 9 | 10 | 11 |
12 |

Class NCL

13 | 14 | 15 |
16 |
Description
17 | 22 |
23 | 24 |

Класс, который содержит основные константы библиотеки:

25 |

  • индексы мужского и женского пола
  • индексы всех падежей

26 |
    27 |
  • author: Андрей Чайка <bymer3@gmail.com>
  • 28 |
  • version: 0.4.1
  • 29 |
30 |

31 | Located in /NCL/NCL.php (line 9) 32 |

33 | 34 | 35 |

 36 | 	
 37 | 			
38 |
39 | 40 | 41 |
42 |
Direct descendents
43 | 48 |
49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 59 | 60 |
ClassDescription
NCLNameCaseCore 57 | Класс, который содержит основные константы библиотеки: 58 |
61 |
62 |
63 | 64 | 65 | 66 |
67 |
Variable Summary
68 | 73 |
74 |
75 |
76 | static mixed 77 | $DATELN 78 |
79 |
80 | static mixed 81 | $IMENITLN 82 |
83 |
84 | static mixed 85 | $MAN 86 |
87 |
88 | static mixed 89 | $PREDLOGN 90 |
91 |
92 | static mixed 93 | $RODITLN 94 |
95 |
96 | static mixed 97 | $TVORITELN 98 |
99 |
100 | static mixed 101 | $UaDavalnyi 102 |
103 |
104 | static mixed 105 | $UaKlychnyi 106 |
107 |
108 | static mixed 109 | $UaMiszevyi 110 |
111 |
112 | static mixed 113 | $UaNazyvnyi 114 |
115 |
116 | static mixed 117 | $UaOrudnyi 118 |
119 |
120 | static mixed 121 | $UaRodovyi 122 |
123 |
124 | static mixed 125 | $UaZnahidnyi 126 |
127 |
128 | static mixed 129 | $VINITELN 130 |
131 |
132 | static mixed 133 | $WOMAN 134 |
135 |
136 |
137 |
138 | 139 | 140 | 141 |
142 |
Variables
143 | 150 |
151 | 152 |
153 | 154 |
155 | 156 | static mixed 157 | $DATELN 158 | = 2 (line 39) 159 | 160 |
161 | 162 | 163 |

Дательный падеж

164 | 165 | 166 | 167 | 168 | 169 |
170 | 171 |
172 | 173 |
174 | 175 | static mixed 176 | $IMENITLN 177 | = 0 (line 27) 178 | 179 |
180 | 181 | 182 |

Именительный падеж

183 | 184 | 185 | 186 | 187 | 188 |
189 | 190 |
191 | 192 |
193 | 194 | static mixed 195 | $MAN 196 | = 1 (line 15) 197 | 198 |
199 | 200 | 201 |

Мужской пол

202 | 203 | 204 | 205 | 206 | 207 |
208 | 209 |
210 | 211 |
212 | 213 | static mixed 214 | $PREDLOGN 215 | = 5 (line 57) 216 | 217 |
218 | 219 | 220 |

Предложный падеж

221 | 222 | 223 | 224 | 225 | 226 |
227 | 228 |
229 | 230 |
231 | 232 | static mixed 233 | $RODITLN 234 | = 1 (line 33) 235 | 236 |
237 | 238 | 239 |

Родительный падеж

240 | 241 | 242 | 243 | 244 | 245 |
246 | 247 |
248 | 249 |
250 | 251 | static mixed 252 | $TVORITELN 253 | = 4 (line 51) 254 | 255 |
256 | 257 | 258 |

Творительный падеж

259 | 260 | 261 | 262 | 263 | 264 |
265 | 266 |
267 | 268 |
269 | 270 | static mixed 271 | $UaDavalnyi 272 | = 2 (line 75) 273 | 274 |
275 | 276 | 277 |

Давальний відмінок

278 | 279 | 280 | 281 | 282 | 283 |
284 | 285 |
286 | 287 |
288 | 289 | static mixed 290 | $UaKlychnyi 291 | = 6 (line 99) 292 | 293 |
294 | 295 | 296 |

Кличний відмінок

297 | 298 | 299 | 300 | 301 | 302 |
303 | 304 |
305 | 306 |
307 | 308 | static mixed 309 | $UaMiszevyi 310 | = 5 (line 93) 311 | 312 |
313 | 314 | 315 |

Місцевий відмінок

316 | 317 | 318 | 319 | 320 | 321 |
322 | 323 |
324 | 325 |
326 | 327 | static mixed 328 | $UaNazyvnyi 329 | = 0 (line 63) 330 | 331 |
332 | 333 | 334 |

Назвиний відмінок

335 | 336 | 337 | 338 | 339 | 340 |
341 | 342 |
343 | 344 |
345 | 346 | static mixed 347 | $UaOrudnyi 348 | = 4 (line 87) 349 | 350 |
351 | 352 | 353 |

Орудний відмінок

354 | 355 | 356 | 357 | 358 | 359 |
360 | 361 |
362 | 363 |
364 | 365 | static mixed 366 | $UaRodovyi 367 | = 1 (line 69) 368 | 369 |
370 | 371 | 372 |

Родовий відмінок

373 | 374 | 375 | 376 | 377 | 378 |
379 | 380 |
381 | 382 |
383 | 384 | static mixed 385 | $UaZnahidnyi 386 | = 3 (line 81) 387 | 388 |
389 | 390 | 391 |

Знахідний відмінок

392 | 393 | 394 | 395 | 396 | 397 |
398 | 399 |
400 | 401 |
402 | 403 | static mixed 404 | $VINITELN 405 | = 3 (line 45) 406 | 407 |
408 | 409 | 410 |

Винительный падеж

411 | 412 | 413 | 414 | 415 | 416 |
417 | 418 |
419 | 420 |
421 | 422 | static mixed 423 | $WOMAN 424 | = 2 (line 21) 425 | 426 |
427 | 428 | 429 |

Женский пол

430 | 431 | 432 | 433 | 434 | 435 |
436 | 437 |
438 |
439 | 440 | 441 | 442 |

443 | Documentation generated on Wed, 06 Jul 2011 13:46:17 +0300 by phpDocumentor 1.4.3 444 |

445 |
446 | -------------------------------------------------------------------------------- /Docs/default/_NCL---NCL.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCL.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCL.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | 28 |
29 |
Classes
30 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 47 | 48 |
ClassDescription
42 | NCL 43 | 45 | Класс, который содержит основные константы библиотеки: 46 |
49 |
50 |
51 | 52 | 53 | 54 | 55 | 56 |

57 | Documentation generated on Wed, 06 Jul 2011 13:46:17 +0300 by phpDocumentor 1.4.3 58 |

59 |
60 | -------------------------------------------------------------------------------- /Docs/default/_NCL---NCLNameCaseCore.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLNameCaseCore.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLNameCaseCore.php

13 | 14 | 15 |
16 |
Description
17 | 23 |
24 | 25 | 26 |
27 |
28 | 29 | 30 |
31 |
Classes
32 | 38 |
39 | 40 | 41 | 42 | 43 | 44 | 45 | 48 | 51 | 52 |
ClassDescription
46 | NCLNameCaseCore 47 | 49 | Класс, который содержит основные константы библиотеки: 50 |
53 |
54 |
55 | 56 | 57 |
58 |
Includes
59 | 65 |
66 | 67 |
68 | 69 |
70 | 71 | require_once 72 | (NCL_DIR.'/NCL.php') 73 | (line 8) 74 | 75 |
76 | 77 | 78 | 79 |
80 | 81 |
82 | 83 |
84 | 85 | require_once 86 | (NCL_DIR.'/NCLStr.php') 87 | (line 9) 88 | 89 |
90 | 91 | 92 | 93 |
94 | 95 |
96 | 97 |
98 | 99 | require_once 100 | (NCL_DIR.'/NCLNameCaseInterface.php') 101 | (line 10) 102 | 103 |
104 | 105 | 106 | 107 |
108 | 109 |
110 | 111 |
112 | 113 | require_once 114 | (NCL_DIR.'/NCLNameCaseWord.php') 115 | (line 11) 116 | 117 |
118 | 119 | 120 | 121 |
122 |
123 |
124 | 125 | 126 |
127 |
Constants
128 | 134 |
135 | 136 |
137 | 138 |
139 | 140 | NCL_DIR = dirname(__FILE__) 141 | (line 5) 142 | 143 |
144 | 145 | 146 | 147 | 148 |
149 |
150 |
151 | 152 | 153 | 154 |

155 | Documentation generated on Wed, 06 Jul 2011 13:46:17 +0300 by phpDocumentor 1.4.3 156 |

157 |
158 | -------------------------------------------------------------------------------- /Docs/default/_NCL---NCLNameCaseInterface.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLNameCaseInterface.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLNameCaseInterface.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | 28 |
29 |
Classes
30 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 47 | 48 |
ClassDescription
42 | NCLNameCaseInterface 43 | 45 | 46 |
49 |
50 |
51 | 52 | 53 | 54 | 55 | 56 |

57 | Documentation generated on Wed, 06 Jul 2011 13:46:17 +0300 by phpDocumentor 1.4.3 58 |

59 |
60 | -------------------------------------------------------------------------------- /Docs/default/_NCL---NCLNameCaseWord.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLNameCaseWord.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLNameCaseWord.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | 28 |
29 |
Classes
30 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 47 | 48 |
ClassDescription
42 | NCLNameCaseWord 43 | 45 | NCLNameCaseWord - класс, который служит для хранения всей информации о каждом слове 46 |
49 |
50 |
51 | 52 | 53 | 54 | 55 | 56 |

57 | Documentation generated on Wed, 06 Jul 2011 13:46:18 +0300 by phpDocumentor 1.4.3 58 |

59 |
60 | -------------------------------------------------------------------------------- /Docs/default/_NCL---NCLStr.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCLStr.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL/NCLStr.php

13 | 14 | 15 |
16 |
Description
17 | 21 |
22 | 23 | 24 |
25 |
26 | 27 | 28 |
29 |
Classes
30 | 34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 47 | 48 |
ClassDescription
42 | NCLStr 43 | 45 | Класс содержит функции для работы со строками, которые используются в NCLNameCaseLib 46 |
49 |
50 |
51 | 52 | 53 | 54 | 55 | 56 |

57 | Documentation generated on Wed, 06 Jul 2011 13:46:18 +0300 by phpDocumentor 1.4.3 58 |

59 |
60 | -------------------------------------------------------------------------------- /Docs/default/_NCL.NameCase.ru.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCL.NameCase.ru.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL.NameCase.ru.php

13 | 14 | 15 |
16 |
Description
17 | 22 |
23 | 24 | 25 |
26 |
27 | 28 | 29 |
30 |
Classes
31 | 36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 46 | 49 | 50 |
ClassDescription
44 | NCLNameCaseRu 45 | 47 | Класс, который содержит основные константы библиотеки: 48 |
51 |
52 |
53 | 54 | 55 |
56 |
Includes
57 | 62 |
63 | 64 |
65 | 66 |
67 | 68 | require_once 69 | (dirname(__FILE__).'/NCL/NCLNameCaseCore.php') 70 | (line 13) 71 | 72 |
73 | 74 | 75 | 76 |
77 |
78 |
79 | 80 | 81 | 82 | 83 |

84 | Documentation generated on Wed, 06 Jul 2011 13:46:15 +0300 by phpDocumentor 1.4.3 85 |

86 |
87 | -------------------------------------------------------------------------------- /Docs/default/_NCL.NameCase.ua.php.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Docs for page NCL.NameCase.ua.php 7 | 8 | 9 | 10 | 11 |
12 |

/NCL.NameCase.ua.php

13 | 14 | 15 |
16 |
Description
17 | 22 |
23 | 24 | 25 |
26 |
27 | 28 | 29 |
30 |
Classes
31 | 36 |
37 | 38 | 39 | 40 | 41 | 42 | 43 | 46 | 49 | 50 |
ClassDescription
44 | NCLNameCaseUa 45 | 47 | Класс, который содержит основные константы библиотеки: 48 |
51 |
52 |
53 | 54 | 55 |
56 |
Includes
57 | 62 |
63 | 64 |
65 | 66 |
67 | 68 | require_once 69 | (dirname(__FILE__).'/NCL/NCLNameCaseCore.php') 70 | (line 15) 71 | 72 |
73 | 74 | 75 |

NCL NameCase Ukranian Language

76 |

Украинские правила склонений ФИО. Правила определения пола человека по ФИО для украинского языка Система разделения фамилий имен и отчеств для украинского языка

77 |
    78 |
  • author: Андрей Чайка http://seagull.net.ua/ bymer3@gmail.com
  • 79 |
  • version: 0.4.1 05.07.2011
  • 80 |
  • license: Dual
  • 81 |
82 | 83 |
84 |
85 |
86 | 87 | 88 | 89 | 90 |

91 | Documentation generated on Wed, 06 Jul 2011 13:46:16 +0300 by phpDocumentor 1.4.3 92 |

93 |
94 | -------------------------------------------------------------------------------- /Docs/errors.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | phpDocumentor Parser Errors and Warnings 7 | 8 | 9 | 10 | 11 | Post-parsing
12 |

13 | Documentation generated on Sat, 09 Jul 2011 17:55:20 +0300 by phpDocumentor 1.4.3 14 |

15 | 16 | -------------------------------------------------------------------------------- /Docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 7 | 8 | Generated Documentation 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | <H2>Frame Alert</H2> 20 | <P>This document is designed to be viewed using the frames feature. 21 | If you see this message, you are using a non-frame-capable web client.</P> 22 | 23 | 24 | -------------------------------------------------------------------------------- /Docs/li_NameCaseLib.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
NameCaseLib
12 |
13 | 14 |
15 | 16 |
Description
17 |
18 | Class trees
19 | Index of elements
20 |
21 | 22 | 23 | 24 |
Classes
25 |
NCL
26 |
NCLNameCaseCore
27 |
NCLNameCaseRu
28 |
NCLNameCaseUa
29 |
NCLNameCaseWord
30 |
NCLStr
31 |
Files
32 |
NCL.NameCase.ru.php
33 |
NCL.NameCase.ua.php
34 |
NCL.php
35 |
NCLNameCaseCore.php
36 |
NCLNameCaseWord.php
37 |
NCLStr.php
38 | 39 | 40 |
41 |
42 |

phpDocumentor v 1.4.3

43 | 44 | -------------------------------------------------------------------------------- /Docs/li_default.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
default
12 |
13 | 14 |
15 | 16 |
Description
17 |
18 | Class trees
19 | Index of elements
20 |
21 | 22 | 23 | 24 |
Interfaces
25 |
NCLNameCaseInterface
26 |
Classes
27 |
NCL
28 |
NCLNameCaseCore
29 |
NCLNameCaseRu
30 |
NCLNameCaseUa
31 |
NCLNameCaseWord
32 |
NCLStr
33 |
Files
34 |
NCL.NameCase.ru.php
35 |
NCL.NameCase.ua.php
36 |
NCL.php
37 |
NCLNameCaseCore.php
38 |
NCLNameCaseInterface.php
39 |
NCLNameCaseWord.php
40 |
NCLStr.php
41 | 42 | 43 |
44 |
45 |

phpDocumentor v 1.4.3

46 | 47 | -------------------------------------------------------------------------------- /Docs/media/banner.css: -------------------------------------------------------------------------------- 1 | body 2 | { 3 | background-color: #CCCCFF; 4 | margin: 0px; 5 | padding: 0px; 6 | } 7 | 8 | /* Banner (top bar) classes */ 9 | 10 | .banner { } 11 | 12 | .banner-menu 13 | { 14 | clear: both; 15 | padding: .5em; 16 | border-top: 2px solid #6666AA; 17 | } 18 | 19 | .banner-title 20 | { 21 | text-align: right; 22 | font-size: 20pt; 23 | font-weight: bold; 24 | margin: .2em; 25 | } 26 | 27 | .package-selector 28 | { 29 | background-color: #AAAADD; 30 | border: 1px solid black; 31 | color: yellow; 32 | } 33 | -------------------------------------------------------------------------------- /Docs/media/stylesheet.css: -------------------------------------------------------------------------------- 1 | a { color: #336699; text-decoration: none; } 2 | a:hover { color: #6699CC; text-decoration: underline; } 3 | a:active { color: #6699CC; text-decoration: underline; } 4 | 5 | body { background : #FFFFFF; } 6 | body, table { font-family: Georgia, Times New Roman, Times, serif; font-size: 10pt } 7 | p, li { line-height: 140% } 8 | a img { border: 0px; } 9 | dd { margin-left: 0px; padding-left: 1em; } 10 | 11 | /* Page layout/boxes */ 12 | 13 | .info-box {} 14 | .info-box-title { margin: 1em 0em 0em 0em; padding: .25em; font-weight: normal; font-size: 14pt; border: 2px solid #999999; background-color: #CCCCFF } 15 | .info-box-body { border: 1px solid #999999; padding: .5em; } 16 | .nav-bar { font-size: 8pt; white-space: nowrap; text-align: right; padding: .2em; margin: 0em 0em 1em 0em; } 17 | 18 | .oddrow { background-color: #F8F8F8; border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em} 19 | .evenrow { border: 1px solid #AAAAAA; padding: .5em; margin-bottom: 1em} 20 | 21 | .page-body { max-width: 800px; margin: auto; } 22 | .tree dl { margin: 0px } 23 | 24 | /* Index formatting classes */ 25 | 26 | .index-item-body { margin-top: .5em; margin-bottom: .5em} 27 | .index-item-description { margin-top: .25em } 28 | .index-item-details { font-weight: normal; font-style: italic; font-size: 8pt } 29 | .index-letter-section { background-color: #EEEEEE; border: 1px dotted #999999; padding: .5em; margin-bottom: 1em} 30 | .index-letter-title { font-size: 12pt; font-weight: bold } 31 | .index-letter-menu { text-align: center; margin: 1em } 32 | .index-letter { font-size: 12pt } 33 | 34 | /* Docbook classes */ 35 | 36 | .description {} 37 | .short-description { font-weight: bold; color: #666666; } 38 | .tags { padding-left: 0em; margin-left: 3em; color: #666666; list-style-type: square; } 39 | .parameters { padding-left: 0em; margin-left: 3em; font-style: italic; list-style-type: square; } 40 | .redefinitions { font-size: 8pt; padding-left: 0em; margin-left: 2em; } 41 | .package { } 42 | .package-title { font-weight: bold; font-size: 14pt; border-bottom: 1px solid black } 43 | .package-details { font-size: 85%; } 44 | .sub-package { font-weight: bold; font-size: 120% } 45 | .tutorial { border-width: thin; border-color: #0066ff } 46 | .tutorial-nav-box { width: 100%; border: 1px solid #999999; background-color: #F8F8F8; } 47 | .nav-button-disabled { color: #999999; } 48 | .nav-button:active, 49 | .nav-button:focus, 50 | .nav-button:hover { background-color: #DDDDDD; outline: 1px solid #999999; text-decoration: none } 51 | .folder-title { font-style: italic } 52 | 53 | /* Generic formatting */ 54 | 55 | .field { font-weight: bold; } 56 | .detail { font-size: 8pt; } 57 | .notes { font-style: italic; font-size: 8pt; } 58 | .separator { background-color: #999999; height: 2px; } 59 | .warning { color: #FF6600; } 60 | .disabled { font-style: italic; color: #999999; } 61 | 62 | /* Code elements */ 63 | 64 | .line-number { } 65 | 66 | .class-table { width: 100%; } 67 | .class-table-header { border-bottom: 1px dotted #666666; text-align: left} 68 | .class-name { color: #000000; font-weight: bold; } 69 | 70 | .method-summary { padding-left: 1em; font-size: 8pt } 71 | .method-header { } 72 | .method-definition { margin-bottom: .3em } 73 | .method-title { font-weight: bold; } 74 | .method-name { font-weight: bold; } 75 | .method-signature { font-size: 85%; color: #666666; margin: .5em 0em } 76 | .method-result { font-style: italic; } 77 | 78 | .var-summary { padding-left: 1em; font-size: 8pt; } 79 | .var-header { } 80 | .var-title { margin-bottom: .3em } 81 | .var-type { font-style: italic; } 82 | .var-name { font-weight: bold; } 83 | .var-default {} 84 | .var-description { font-weight: normal; color: #000000; } 85 | 86 | .include-title { } 87 | .include-type { font-style: italic; } 88 | .include-name { font-weight: bold; } 89 | 90 | .const-title { } 91 | .const-name { font-weight: bold; } 92 | 93 | /* Syntax highlighting */ 94 | 95 | .src-code { border: 1px solid #336699; padding: 1em; background-color: #EEEEEE; } 96 | .src-line { font-family: 'Courier New', Courier, monospace; font-weight: normal; } 97 | 98 | .src-comm { color: green; } 99 | .src-id { } 100 | .src-inc { color: #0000FF; } 101 | .src-key { color: #0000FF; } 102 | .src-num { color: #CC0000; } 103 | .src-str { color: #66cccc; } 104 | .src-sym { font-weight: bold; } 105 | .src-var { } 106 | 107 | .src-php { font-weight: bold; } 108 | 109 | .src-doc { color: #009999 } 110 | .src-doc-close-template { color: #0000FF } 111 | .src-doc-coretag { color: #0099FF; font-weight: bold } 112 | .src-doc-inlinetag { color: #0099FF } 113 | .src-doc-internal { color: #6699cc } 114 | .src-doc-tag { color: #0080CC } 115 | .src-doc-template { color: #0000FF } 116 | .src-doc-type { font-style: italic } 117 | .src-doc-var { font-style: italic } 118 | 119 | .tute-tag { color: #009999 } 120 | .tute-attribute-name { color: #0000FF } 121 | .tute-attribute-value { color: #0099FF } 122 | .tute-entity { font-weight: bold; } 123 | .tute-comment { font-style: italic } 124 | .tute-inline-tag { color: #636311; font-weight: bold } 125 | 126 | /* tutorial */ 127 | 128 | .authors { } 129 | .author { font-style: italic; font-weight: bold } 130 | .author-blurb { margin: .5em 0em .5em 2em; font-size: 85%; font-weight: normal; font-style: normal } 131 | .example { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; } 132 | *[class="example"] { line-height : 0.5em } 133 | .listing { border: 1px dashed #999999; background-color: #EEEEEE; padding: .5em; white-space: nowrap; } 134 | *[class="listing"] { line-height : 0.5em } 135 | .release-info { font-size: 85%; font-style: italic; margin: 1em 0em } 136 | .ref-title-box { } 137 | .ref-title { } 138 | .ref-purpose { font-style: italic; color: #666666 } 139 | .ref-synopsis { } 140 | .title { font-weight: bold; margin: 1em 0em 0em 0em; padding: .25em; border: 2px solid #999999; background-color: #CCCCFF } 141 | .cmd-synopsis { margin: 1em 0em } 142 | .cmd-title { font-weight: bold } 143 | .toc { margin-left: 2em; padding-left: 0em } 144 | 145 | -------------------------------------------------------------------------------- /Docs/packages.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 26 | 27 | -------------------------------------------------------------------------------- /Library/NCL/NCL.php: -------------------------------------------------------------------------------- 1 | 13 | * @version 0.4.1 14 | * @package NameCaseLib 15 | */ 16 | class NCL 17 | { 18 | /** 19 | * Мужской пол 20 | * @static integer 21 | */ 22 | static $MAN = 1; 23 | 24 | /** 25 | * Женский пол 26 | * @static integer 27 | */ 28 | static $WOMAN = 2; 29 | 30 | /** 31 | * Именительный падеж 32 | * @static integer 33 | */ 34 | static $IMENITLN = 0; 35 | 36 | /** 37 | * Родительный падеж 38 | * @static integer 39 | */ 40 | static $RODITLN = 1; 41 | 42 | /** 43 | * Дательный падеж 44 | * @static integer 45 | */ 46 | static $DATELN = 2; 47 | 48 | /** 49 | * Винительный падеж 50 | * @static integer 51 | */ 52 | static $VINITELN = 3; 53 | 54 | /** 55 | * Творительный падеж 56 | * @static integer 57 | */ 58 | static $TVORITELN = 4; 59 | 60 | /** 61 | * Предложный падеж 62 | * @static integer 63 | */ 64 | static $PREDLOGN = 5; 65 | 66 | /** 67 | * Назвиний відмінок 68 | * @static integer 69 | */ 70 | static $UaNazyvnyi = 0; 71 | 72 | /** 73 | * Родовий відмінок 74 | * @static integer 75 | */ 76 | static $UaRodovyi = 1; 77 | 78 | /** 79 | * Давальний відмінок 80 | * @static integer 81 | */ 82 | static $UaDavalnyi = 2; 83 | 84 | /** 85 | * Знахідний відмінок 86 | * @static integer 87 | */ 88 | static $UaZnahidnyi = 3; 89 | 90 | /** 91 | * Орудний відмінок 92 | * @static integer 93 | */ 94 | static $UaOrudnyi = 4; 95 | 96 | /** 97 | * Місцевий відмінок 98 | * @static integer 99 | */ 100 | static $UaMiszevyi = 5; 101 | 102 | /** 103 | * Кличний відмінок 104 | * @static integer 105 | */ 106 | static $UaKlychnyi = 6; 107 | 108 | } 109 | 110 | ?> 111 | -------------------------------------------------------------------------------- /Library/NCL/NCLNameCaseWord.php: -------------------------------------------------------------------------------- 1 | 11 | * @version 0.4.1 12 | * @package NameCaseLib 13 | */ 14 | class NCLNameCaseWord 15 | { 16 | 17 | /** 18 | * Слово в нижнем регистре, которое хранится в об’єкте класса 19 | * @var string 20 | */ 21 | private $word = ''; 22 | 23 | /** 24 | * Оригинальное слово 25 | * @var string 26 | */ 27 | private $word_orig = ''; 28 | 29 | /** 30 | * Тип текущей записи (Фамилия/Имя/Отчество) 31 | * - N - ім’я 32 | * - S - прізвище 33 | * - F - по-батькові 34 | * @var string 35 | */ 36 | private $namePart = null; 37 | 38 | /** 39 | * Вероятность того, что текущей слово относится к мужскому полу 40 | * @var int 41 | */ 42 | private $genderMan = 0; 43 | 44 | /** 45 | * Вероятность того, что текущей слово относится к женскому полу 46 | * @var int 47 | */ 48 | private $genderWoman = 0; 49 | 50 | /** 51 | * Окончательное решение, к какому полу относится слово 52 | * - 0 - не определено 53 | * - NCL::$MAN - мужской пол 54 | * - NCL::$WOMAN - женский пол 55 | * @var int 56 | */ 57 | private $genderSolved = 0; 58 | 59 | /** 60 | * Маска больших букв в слове. 61 | * 62 | * Содержит информацию о том, какие буквы в слове были большими, а какие мальникими: 63 | * - x - маленькая буква 64 | * - X - больная буква 65 | * @var array 66 | */ 67 | private $letterMask = array(); 68 | 69 | /** 70 | * Содержит true, если все слово было в верхнем регистре и false, если не было 71 | * @var bool 72 | */ 73 | private $isUpperCase = false; 74 | 75 | /** 76 | * Массив содержит все падежи слова, полученые после склонения текущего слова 77 | * @var array 78 | */ 79 | private $NameCases = array(); 80 | 81 | /** 82 | * Номер правила, по которому было произведено склонение текущего слова 83 | * @var int 84 | */ 85 | private $rule = 0; 86 | 87 | /** 88 | * Создание нового обьекта со словом $word 89 | * @param string $word слово 90 | */ 91 | public function __construct($word) 92 | { 93 | $this->word_orig=$word; 94 | $this->generateMask($word); 95 | $this->word = NCLStr::strtolower($word); 96 | } 97 | 98 | /** 99 | * Генерирует маску, которая содержит информацию о том, какие буквы в слове были большими, а какие маленькими: 100 | * - x - маленькая буква 101 | * - X - больная буква 102 | * @param string $word слово, для которого генерировать маску 103 | */ 104 | private function generateMask($word) 105 | { 106 | $letters = NCLStr::splitLetters($word); 107 | $mask = array(); 108 | $this->isUpperCase = true; 109 | foreach ($letters as $letter) 110 | { 111 | if (NCLStr::isLowerCase($letter)) 112 | { 113 | $mask[] = 'x'; 114 | $this->isUpperCase = false; 115 | } 116 | else 117 | { 118 | $mask[] = 'X'; 119 | } 120 | } 121 | $this->letterMask = $mask; 122 | } 123 | 124 | /** 125 | * Возвращает все падежи слова в начальную маску: 126 | * - x - маленькая буква 127 | * - X - больная буква 128 | */ 129 | private function returnMask() 130 | { 131 | if ($this->isUpperCase) 132 | { 133 | foreach ($this->NameCases as $index => $case) 134 | { 135 | $this->NameCases[$index] = NCLStr::strtoupper($this->NameCases[$index]); 136 | } 137 | } 138 | else 139 | { 140 | $splitedMask = $this->letterMask; 141 | $maskLength = count($splitedMask); 142 | foreach ($this->NameCases as $index => $case) 143 | { 144 | $caseLength = NCLStr::strlen($case); 145 | 146 | $max = min(array($caseLength, $maskLength)); 147 | $this->NameCases[$index] = ''; 148 | for ($letterIndex = 0; $letterIndex < $max; $letterIndex++) 149 | { 150 | $letter = NCLStr::substr($case, $letterIndex, 1); 151 | if ($splitedMask[$letterIndex] == 'X') 152 | { 153 | $letter = NCLStr::strtoupper($letter); 154 | } 155 | $this->NameCases[$index] .= $letter; 156 | } 157 | $this->NameCases[$index] .= NCLStr::substr($case, $max, $caseLength-$maskLength); 158 | } 159 | } 160 | } 161 | 162 | /** 163 | * Сохраняет результат склонения текущего слова 164 | * @param array $nameCases массив со всеми падежами 165 | */ 166 | public function setNameCases($nameCases, $is_return_mask=true) 167 | { 168 | $this->NameCases = $nameCases; 169 | if ($is_return_mask) $this->returnMask(); 170 | } 171 | 172 | /** 173 | * Возвращает массив со всеми падежами текущего слова 174 | * @return array массив со всеми падежами 175 | */ 176 | public function getNameCases() 177 | { 178 | return $this->NameCases; 179 | } 180 | 181 | /** 182 | * Возвращает строку с нужным падежом текущего слова 183 | * @param int $number нужный падеж 184 | * @return string строка с нужным падежом текущего слова 185 | */ 186 | public function getNameCase($number) 187 | { 188 | if(isset($this->NameCases[$number])) 189 | { 190 | return $this->NameCases[$number]; 191 | } 192 | return false; 193 | } 194 | 195 | /** 196 | * Расчитывает и возвращает пол текущего слова 197 | * @return int пол текущего слова 198 | */ 199 | public function gender() 200 | { 201 | if (!$this->genderSolved) 202 | { 203 | if ($this->genderMan >= $this->genderWoman) 204 | { 205 | $this->genderSolved = NCL::$MAN; 206 | } 207 | else 208 | { 209 | $this->genderSolved = NCL::$WOMAN; 210 | } 211 | } 212 | return $this->genderSolved; 213 | } 214 | 215 | /** 216 | * Устанавливает вероятности того, что даное слово является мужчиной или женщиной 217 | * @param int $man вероятность того, что слово мужчина 218 | * @param int $woman верятность того, что слово женщина 219 | */ 220 | public function setGender($man, $woman) 221 | { 222 | $this->genderMan = $man; 223 | $this->genderWoman = $woman; 224 | } 225 | 226 | /** 227 | * Окончательно устанавливает пол человека 228 | * - 0 - не определено 229 | * - NCL::$MAN - мужчина 230 | * - NCL::$WOMAN - женщина 231 | * @param int $gender пол человека 232 | */ 233 | public function setTrueGender($gender) 234 | { 235 | $this->genderSolved = $gender; 236 | } 237 | 238 | /** 239 | * Возвращает массив вероятности того, что даное слово является мужчиной или женщиной 240 | * @return array массив вероятностей 241 | */ 242 | public function getGender() 243 | { 244 | return array(NCL::$MAN => $this->genderMan, NCL::$WOMAN => $this->genderWoman); 245 | } 246 | 247 | /** 248 | * Устанавливает тип текущего слова 249 | * Тип слова: 250 | * - S - Фамилия 251 | * - N - Имя 252 | * - F - Отчество 253 | * @param string $namePart тип слова 254 | */ 255 | public function setNamePart($namePart) 256 | { 257 | $this->namePart = $namePart; 258 | } 259 | 260 | /** 261 | * Возвращает тип текущего слова 262 | * Тип слова: 263 | * - S - Фамилия 264 | * - N - Имя 265 | * - F - Отчество 266 | * @return string $namePart тип слова 267 | */ 268 | public function getNamePart() 269 | { 270 | return $this->namePart; 271 | } 272 | 273 | /** 274 | * Возвращает текущее слово. 275 | * @return string текущее слово 276 | */ 277 | public function getWord() 278 | { 279 | return $this->word; 280 | } 281 | 282 | /** 283 | * Возвращает текущее оригинальное слово. 284 | * @return string текущее слово 285 | */ 286 | public function getWordOrig() 287 | { 288 | return $this->word_orig; 289 | } 290 | 291 | /** 292 | * Если уже был расчитан пол для всех слов системы, тогда каждому слову предается окончательное 293 | * решение. Эта функция определяет было ли принято окончательное решение. 294 | * @return bool было ли принято окончательное решение по поводу пола текущего слова 295 | */ 296 | public function isGenderSolved() 297 | { 298 | return ($this->genderSolved ? true : false); 299 | } 300 | 301 | /** 302 | * Устанавливает номер правила по которому склонялось текущее слово. 303 | * @param int $ruleID номер правила 304 | */ 305 | public function setRule($ruleID) 306 | { 307 | $this->rule = $ruleID; 308 | } 309 | } 310 | 311 | ?> 312 | -------------------------------------------------------------------------------- /Library/NCL/NCLStr.php: -------------------------------------------------------------------------------- 1 | 11 | * @version 0.4.1 12 | * @package NameCaseLib 13 | */ 14 | class NCLStr 15 | { 16 | /** 17 | * Кодировка, в котороя работает система 18 | * @var string 19 | */ 20 | static $charset = 'utf-8'; 21 | 22 | /** 23 | * Получить подстроку из строки 24 | * @param string $str строка 25 | * @param int $start начало подстроки 26 | * @param int $length длина подстроки 27 | * @return int подстрока 28 | */ 29 | static function substr($str, $start, $length=null) 30 | { 31 | return mb_substr($str, $start, $length, NCLStr::$charset); 32 | } 33 | 34 | /** 35 | * Поиск подстроки в строке 36 | * @param string $haystack строка, в которой искать 37 | * @param string $needle подстрока, которую нужно найти 38 | * @param int $offset начало поиска 39 | * @return int позиция подстроки в строке 40 | */ 41 | static function strpos($haystack, $needle, $offset = 0) 42 | { 43 | return mb_strpos($haystack, $needle, $offset, NCLStr::$charset); 44 | } 45 | 46 | /** 47 | * Определение длины строки 48 | * @param string $str строка 49 | * @return int длина строки 50 | */ 51 | static function strlen($str) 52 | { 53 | return mb_strlen($str, NCLStr::$charset); 54 | } 55 | 56 | /** 57 | * Переводит строку в нижний регистр 58 | * @param string $str строка 59 | * @return string строка в нижнем регистре 60 | */ 61 | static function strtolower($str) 62 | { 63 | return mb_strtolower($str, NCLStr::$charset); 64 | } 65 | 66 | /** 67 | * Переводит строку в верхний регистр 68 | * @param string $str строка 69 | * @return string строка в верхнем регистре 70 | */ 71 | static function strtoupper($str) 72 | { 73 | return mb_strtoupper($str, NCLStr::$charset); 74 | } 75 | 76 | /** 77 | * Поиск подстроки в строке справа 78 | * @param string $haystack строка, в которой искать 79 | * @param string $needle подстрока, которую нужно найти 80 | * @param int $offset начало поиска 81 | * @return int позиция подстроки в строке 82 | */ 83 | static function strrpos($haystack, $needle, $offset=null) 84 | { 85 | return mb_strrpos($haystack, $needle, $offset, NCLStr::$charset); 86 | } 87 | 88 | /** 89 | * Проверяет в нижнем ли регистре находится строка 90 | * @param string $phrase строка 91 | * @return bool в нижнем ли регистре строка 92 | */ 93 | static function isLowerCase($phrase) 94 | { 95 | return ($phrase == NCLStr::strtolower($phrase)); 96 | } 97 | 98 | /** 99 | * Проверяет в верхнем ли регистре находится строка 100 | * @param string $phrase строка 101 | * @return bool в верхнем ли регистре строка 102 | */ 103 | static function isUpperCase($phrase) 104 | { 105 | return ($phrase == NCLStr::strtoupper($phrase)); 106 | } 107 | 108 | /** 109 | * Превращает строку в массив букв 110 | * @param string $phrase строка 111 | * @return array массив букв 112 | */ 113 | static function splitLetters($phrase) 114 | { 115 | $resultArr = array(); 116 | $stop = NCLStr::strlen($phrase); 117 | for ($idx = 0; $idx < $stop; $idx++) 118 | { 119 | $resultArr[] = NCLStr::substr($phrase, $idx, 1); 120 | } 121 | return $resultArr; 122 | } 123 | 124 | /** 125 | * Соединяет массив букв в строку 126 | * @param array $lettersArr массив букв 127 | * @return string строка 128 | */ 129 | static function connectLetters($lettersArr) 130 | { 131 | return implode('', $lettersArr); 132 | } 133 | 134 | /** 135 | * Разбивает строку на части использую шаблон 136 | * @param string $pattern шаблон разбития 137 | * @param string $string строка, которую нужно разбить 138 | * @return array разбитый массив 139 | */ 140 | static function explode($pattern, $string) 141 | { 142 | return mb_split($pattern, $string); 143 | } 144 | } 145 | 146 | ?> 147 | -------------------------------------------------------------------------------- /MIT-LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2011 Andriy Chaika, http://namecaselib.com/ 2 | 3 | Permission is hereby granted, free of charge, to any person obtaining 4 | a copy of this software and associated documentation files (the 5 | "Software"), to deal in the Software without restriction, including 6 | without limitation the rights to use, copy, modify, merge, publish, 7 | distribute, sublicense, and/or sell copies of the Software, and to 8 | permit persons to whom the Software is furnished to do so, subject to 9 | the following conditions: 10 | 11 | The above copyright notice and this permission notice shall be 12 | included in all copies or substantial portions of the Software. 13 | 14 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 15 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 16 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 17 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE 18 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION 19 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION 20 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # NameCaseLib 2 | NameCaseLib — библиотека PHP5, предназначенная для автоматического склонения ФИО в русском и украинском языках. Уникальная особенность состоит в том, что библиотека содержит одинаковые методы для работы с ФИО на русском и украинском языках. 3 | 4 | ## Инструкция 5 | - Демонстрация работы - http://namecaselib.com/case/ 6 | - Документация - http://namecaselib.com/book/ 7 | 8 | ## 0.4.1 (2016-11-23) 9 | - Rules updates (5 years of work) 10 | - Any pull requests with the new rules updates will be merged now 11 | 12 | ## 0.4 (2011-07-09) 13 | - Полная переработка кода 14 | - Создание для каждого слова класса NCLNameCaseWord 15 | - Правила для склонения имен и фамилий объединены 16 | - Множество исправлений правил 17 | - Полная переработка ядра системы 18 | - Добавлена поддержка работы с разными регистрами слов 19 | 20 | ## 0.3 (2011-07-02) 21 | - Добавлен украинский язык 22 | - Все функции склонения работают одинаково для русского и украинского языков 23 | - Создан класс с общими функциями 24 | - Украинский язык может склонять в «кличний відмінок» 25 | 26 | ## 0.1.2 (2011-05-05) 27 | - Написана функция поиска имени, фамилии, отчества в строке. 28 | - Добавлена функция быстрого склонения NCLNameCaseRu::q(), которая принимает обязательный параметр ФИО в любом формате и возвращает строку в нужно падеже. 29 | 30 | ## 0.1.1 (2011-05-03) 31 | - Написана функция определения пола NCLNameCaseRu::GenderAutoDetect() — отлично справляется с парами Имя Фамилия, по моим тестам дает 100% прохождение тестов (2000 пар имен и фамилий). Если указано отчество, пол определяет без проблем. Для просто имен вероятность правильного определения больше 98,5%. Для просто фамилий — больше 96%. 32 | 33 | ## 0.1.0 (2011-05-01) 34 | - Первая версия библиотеки 35 | -------------------------------------------------------------------------------- /Tests/AutoTest/Endings/.gitignore: -------------------------------------------------------------------------------- 1 | *.txt 2 | compiled/ 3 | -------------------------------------------------------------------------------- /Tests/AutoTest/Endings/BatchTester.php: -------------------------------------------------------------------------------- 1 | compiler = new EndingsCompiler($mode); 25 | $this->mode = $mode; 26 | $this->compiler->compile(); 27 | 28 | $this->epsilon = $this->runTest(); 29 | } 30 | 31 | public function testText($ending) 32 | { 33 | $this->compiler->compile($ending); 34 | 35 | return $this->runTest(); 36 | } 37 | 38 | public function runTest() 39 | { 40 | exec("phpunit compiled/Test.php", $output); 41 | 42 | preg_match_all('#Tests: ([\d]+), Assertions: ([\d]+), Failures: ([\d]+).#is', $output[count($output) - 1], $found); 43 | $tests = (float) $found[2][0]; 44 | $bad = (float) $found[3][0]; 45 | 46 | return (1 - ($bad / $tests)); 47 | } 48 | 49 | } 50 | 51 | $direction = "sirname"; //sirname 52 | 53 | for ($num = 2; $num <= 4; $num++) 54 | { 55 | $good = array(); 56 | $bad = array(); 57 | $mode = 'endings_'.$direction . $num; 58 | echo "\n===========\n{$mode}\n===========\n"; 59 | $tester = new BatchTester($mode, $direction); 60 | 61 | $epsilon = $tester->epsilon; 62 | 63 | $endings = file($mode . '.txt'); 64 | 65 | 66 | $old = array(); 67 | foreach ($endings as $ending) 68 | { 69 | if (mb_substr(trim($ending), 0, 1, 'utf-8') != '#') 70 | { 71 | $persent = $tester->testText(trim($ending)); 72 | echo trim($ending) . " - " . $persent . "\n"; 73 | 74 | if ($persent >= $epsilon) 75 | { 76 | $good[] = trim($ending); 77 | } 78 | else 79 | { 80 | $bad[] = trim($ending); 81 | } 82 | } 83 | else 84 | { 85 | $old[] = $ending; 86 | } 87 | } 88 | 89 | 90 | $content = implode('', $old); 91 | if ($good) 92 | { 93 | echo "\nGOOD \n"; 94 | echo ", '" . implode("', '", $good) . "'"; 95 | } 96 | if ($bad) 97 | { 98 | echo "\nBAD \n"; 99 | echo implode(" ", $bad); 100 | $content .= '#'.implode("\n#", $bad); 101 | } 102 | //file_put_contens($mode . '.txt', '#'.implode("\n#", $bad)); 103 | file_put_contents($mode . '.txt', $content); 104 | } 105 | echo "\n\n"; 106 | ?> 107 | -------------------------------------------------------------------------------- /Tests/AutoTest/Endings/EndingsCompiler.php: -------------------------------------------------------------------------------- 1 | template = file_get_contents($this->sourceFile); 20 | $this->mode = $mode; 21 | } 22 | 23 | private function save() 24 | { 25 | file_put_contents($this->destination, $this->compiled); 26 | } 27 | 28 | public function compile($text = '') 29 | { 30 | if($text) 31 | { 32 | $text = ", '".$text."'"; 33 | } 34 | 35 | $this->compiled = str_replace('/*{'.$this->mode.'}*/', $text , $this->template); 36 | //$this->compiled = $this->template; 37 | $this->save(); 38 | 39 | } 40 | } 41 | 42 | ?> 43 | -------------------------------------------------------------------------------- /Tests/Library/CoreMethodsTest.php: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseRu; 20 | } 21 | 22 | /** 23 | * Tears down the fixture, for example, closes a network connection. 24 | * This method is called after a test is executed. 25 | */ 26 | protected function tearDown() 27 | { 28 | 29 | } 30 | 31 | public function test1() 32 | { 33 | $this->object->setFirstName('Николай'); 34 | $this->object->setGender(NCLNameCaseRu::$MAN); 35 | $this->assertEquals('Николаем', $this->object->getFirstNameCase(NCLNameCaseRu::$TVORITELN)); 36 | } 37 | 38 | public function test2() 39 | { 40 | $this->object->setSecondName('Касюк'); 41 | $this->object->setGender(1); 42 | $this->assertEquals('Касюка', $this->object->getSecondNameCase(1)); 43 | } 44 | 45 | public function test3() 46 | { 47 | $this->object->setFatherName('Николаевич'); 48 | $this->assertEquals('Николаевичу', $this->object->getFatherNameCase(NCLNameCaseRu::$DATELN)); 49 | } 50 | 51 | public function test4() 52 | { 53 | $this->object->setName('Николай'); 54 | $this->object->setGender(NCLNameCaseRu::$MAN); 55 | $this->assertEquals('Николаем', $this->object->getFirstNameCase(NCLNameCaseRu::$TVORITELN)); 56 | } 57 | 58 | public function test5() 59 | { 60 | $this->object->setSirname('Касюк'); 61 | $this->object->setGender(1); 62 | $this->assertEquals('Касюка', $this->object->getSecondNameCase(1)); 63 | } 64 | 65 | public function test6() 66 | { 67 | $this->object->setLastName('Касюк'); 68 | $this->object->setGender(1); 69 | $this->assertEquals('Касюка', $this->object->getSecondNameCase(1)); 70 | } 71 | 72 | public function test7() 73 | { 74 | $this->object->setFullName('Гайка', 'Руслана', 'Петровна'); 75 | $this->object->setGender(NCLNameCaseRu::$WOMAN); 76 | $this->assertEquals('Гайки-Русланы-Петровны', $this->object->getFormatted(NCLNameCaseRu::$RODITLN, "S-N-F")); 77 | } 78 | 79 | public function test8() 80 | { 81 | $this->object->setFullName('Гайка', 'Руслана', 'Петровна'); 82 | $this->object->setGender(NCLNameCaseRu::$WOMAN); 83 | $this->assertEquals('Гайки-Русланы-Петровны', $this->object->getFormatted(NCLNameCaseRu::$RODITLN, "S-N-F")); 84 | } 85 | 86 | public function test9() 87 | { 88 | $this->assertEquals(explode(',','Андрей,Андрея,Андрею,Андрея,Андреем,Андрее'), $this->object->qFirstName('Андрей', -3, 1)); 89 | } 90 | 91 | public function test10() 92 | { 93 | $this->assertEquals(explode(',','Чайка,Чайки,Чайке,Чайку,Чайкой,Чайке'), $this->object->qSecondName('Чайка', 15, 1)); 94 | } 95 | 96 | 97 | 98 | public function test11() 99 | { 100 | $this->assertEquals(explode(',','Николаевич,Николаевича,Николаевичу,Николаевича,Николаевичем,Николаевиче'), $this->object->qFatherName('Николаевич', 15, 1)); 101 | } 102 | 103 | public function test12() 104 | { 105 | $this->assertEquals('на Чайке Андрее Николаевиче красивая рубашка', $this->object->qFullName("Чайка", 'Андрей', 'Николаевич', 1, 5, "на S N F красивая рубашка")); 106 | } 107 | 108 | public function test13() 109 | { 110 | $this->assertEquals('комментария', $this->object->qFirstName('комментарий',NCLNameCaseRu::$RODITLN , NCLNameCaseRu::$MAN)); 111 | } 112 | } -------------------------------------------------------------------------------- /Tests/Library/CrazyTestFatherboy.php: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseUa; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | 33 | public function testCrazy0() 34 | { 35 | $this->assertEquals(explode(',','Олександрович,Олександровича,Олександровичу,Олександровича,Олександровичем,Олександровичу,Олександровичу'), $this->object->q('Олександрович')); 36 | } 37 | public function testCrazy1() 38 | { 39 | $this->assertEquals(explode(',','Миколайович,Миколайовича,Миколайовичу,Миколайовича,Миколайовичем,Миколайовичу,Миколайовичу'), $this->object->q('Миколайович')); 40 | } 41 | public function testCrazy2() 42 | { 43 | $this->assertEquals(explode(',','Кузьмич,Кузьмича,Кузьмичу,Кузьмича,Кузьмичем,Кузьмичу,Кузьмичу'), $this->object->q('Кузьмич')); 44 | } 45 | public function testCrazy3() 46 | { 47 | $this->assertEquals(explode(',','Петрович,Петровича,Петровичу,Петровича,Петровичем,Петровичу,Петровичу'), $this->object->q('Петрович')); 48 | } 49 | public function testCrazy4() 50 | { 51 | $this->assertEquals(explode(',','Ілліч,Ілліча,Іллічу,Ілліча,Іллічем,Іллічу,Іллічу'), $this->object->q('Ілліч')); 52 | } 53 | 54 | } -------------------------------------------------------------------------------- /Tests/Library/CrazyTestFathergirl.php: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseUa; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | 33 | public function testCrazy0() 34 | { 35 | $this->assertEquals(explode(',','Василівна,Василівни,Василівні,Василівну,Василівною,Василівні,Василівно'), $this->object->q('Василівна')); 36 | } 37 | public function testCrazy1() 38 | { 39 | $this->assertEquals(explode(',','Антонівна,Антонівни,Антонівні,Антонівну,Антонівною,Антонівні,Антонівно'), $this->object->q('Антонівна')); 40 | } 41 | public function testCrazy2() 42 | { 43 | $this->assertEquals(explode(',','Яківна,Яківни,Яківні,Яківну,Яківною,Яківні,Яківно'), $this->object->q('Яківна')); 44 | } 45 | 46 | } -------------------------------------------------------------------------------- /Tests/Library/NCLNameCaseUaTestFatherboy.php: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseUa; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | 33 | public function testFatherMan0() 34 | { 35 | $this->object->setFatherName('Олександрович'); 36 | $this->object->setGender(1); 37 | 38 | $this->assertEquals(explode(',','Олександрович,Олександровича,Олександровичу,Олександровича,Олександровичем,Олександровичу,Олександровичу'), $this->object->getFatherNameCase()); 39 | } 40 | public function testFatherMan1() 41 | { 42 | $this->object->setFatherName('Миколайович'); 43 | $this->object->setGender(1); 44 | 45 | $this->assertEquals(explode(',','Миколайович,Миколайовича,Миколайовичу,Миколайовича,Миколайовичем,Миколайовичу,Миколайовичу'), $this->object->getFatherNameCase()); 46 | } 47 | public function testFatherMan2() 48 | { 49 | $this->object->setFatherName('Кузьмич'); 50 | $this->object->setGender(1); 51 | 52 | $this->assertEquals(explode(',','Кузьмич,Кузьмича,Кузьмичу,Кузьмича,Кузьмичем,Кузьмичу,Кузьмичу'), $this->object->getFatherNameCase()); 53 | } 54 | public function testFatherMan3() 55 | { 56 | $this->object->setFatherName('Петрович'); 57 | $this->object->setGender(1); 58 | 59 | $this->assertEquals(explode(',','Петрович,Петровича,Петровичу,Петровича,Петровичем,Петровичу,Петровичу'), $this->object->getFatherNameCase()); 60 | } 61 | public function testFatherMan4() 62 | { 63 | $this->object->setFatherName('Ілліч'); 64 | $this->object->setGender(1); 65 | 66 | $this->assertEquals(explode(',','Ілліч,Ілліча,Іллічу,Ілліча,Іллічем,Іллічу,Іллічу'), $this->object->getFatherNameCase()); 67 | } 68 | 69 | } -------------------------------------------------------------------------------- /Tests/Library/NCLNameCaseUaTestFathergirl.php: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseUa; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | 33 | public function testFatherWoman0() 34 | { 35 | $this->object->setFatherName('Василівна'); 36 | $this->object->setGender(2); 37 | 38 | $this->assertEquals(explode(',','Василівна,Василівни,Василівні,Василівну,Василівною,Василівні,Василівно'), $this->object->getFatherNameCase()); 39 | } 40 | public function testFatherWoman1() 41 | { 42 | $this->object->setFatherName('Антонівна'); 43 | $this->object->setGender(2); 44 | 45 | $this->assertEquals(explode(',','Антонівна,Антонівни,Антонівні,Антонівну,Антонівною,Антонівні,Антонівно'), $this->object->getFatherNameCase()); 46 | } 47 | public function testFatherWoman2() 48 | { 49 | $this->object->setFatherName('Яківна'); 50 | $this->object->setGender(2); 51 | 52 | $this->assertEquals(explode(',','Яківна,Яківни,Яківні,Яківну,Яківною,Яківні,Яківно'), $this->object->getFatherNameCase()); 53 | } 54 | 55 | } -------------------------------------------------------------------------------- /Tests/Library/NameSplitUAfather.php: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseUa; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | 33 | public function testSplDetect0() 34 | { 35 | $this->assertEquals('F-Олександрович', trim($this->object->getFullNameFormat('Олександрович')).'-Олександрович'); 36 | } 37 | public function testSplDetect1() 38 | { 39 | $this->assertEquals('F-Миколайович', trim($this->object->getFullNameFormat('Миколайович')).'-Миколайович'); 40 | } 41 | public function testSplDetect2() 42 | { 43 | $this->assertEquals('F-Кузьмич', trim($this->object->getFullNameFormat('Кузьмич')).'-Кузьмич'); 44 | } 45 | public function testSplDetect3() 46 | { 47 | $this->assertEquals('F-Петрович', trim($this->object->getFullNameFormat('Петрович')).'-Петрович'); 48 | } 49 | public function testSplDetect4() 50 | { 51 | $this->assertEquals('F-Ілліч', trim($this->object->getFullNameFormat('Ілліч')).'-Ілліч'); 52 | } 53 | public function testSplDetect5() 54 | { 55 | $this->assertEquals('F-Василівна', trim($this->object->getFullNameFormat('Василівна')).'-Василівна'); 56 | } 57 | public function testSplDetect6() 58 | { 59 | $this->assertEquals('F-Антонівна', trim($this->object->getFullNameFormat('Антонівна')).'-Антонівна'); 60 | } 61 | public function testSplDetect7() 62 | { 63 | $this->assertEquals('F-Яківна', trim($this->object->getFullNameFormat('Яківна')).'-Яківна'); 64 | } 65 | 66 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/CrazyNCLNameCaseUAGenerator.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 19 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 20 | } 21 | 22 | public function generate($fname, $gender) 23 | { 24 | $this->maintemplate = file_get_contents('Template/NCLNameCaseUaTest.main'); 25 | $this->testtemplate = file_get_contents('Template/NCLNameCaseCrazyTest.test'); 26 | //$this->resultArr=file('Names/'.$gender.'_full_result.txt'); 27 | $this->count = 0; 28 | $fnewname = $fname; 29 | if ($fnewname == 'Sirnames') 30 | { 31 | $fnewname = 'second'; 32 | } 33 | if ($gender == 'boy') 34 | { 35 | $this->gender = 1; 36 | $this->dbTable = 'boy' . strtolower($fnewname); 37 | } 38 | else 39 | { 40 | $this->gender = 2; 41 | $this->dbTable = 'girl' . strtolower($fnewname); 42 | } 43 | $this->resultArr = mysql_query("SELECT * FROM {$this->dbTable}"); 44 | //foreach ($this->resultArr as $key=>$value) 45 | //{ 46 | //$this->gender=$key+1; 47 | $all = array(); 48 | while ($row = mysql_fetch_assoc($this->resultArr)) 49 | { 50 | //$tmpnames=explode("#",trim(str_replace('ё','е',$name))); 51 | 52 | $firstRes = array(); 53 | $secondRes = array(); 54 | $fatherRes = array(); 55 | $secondRes = $fatherRes = $firstRes = explode('#', $row['nameCase']); 56 | if ($row['nameCase']) 57 | { 58 | $this->generateTest($firstRes); 59 | } 60 | } 61 | //} 62 | $res = str_replace('{% tests %}', $this->tests, $this->maintemplate); 63 | $res = str_replace('{% name %}', $fname, $res); 64 | file_put_contents('../Library/CrazyTest' . $fname . $gender . '.php', $res); 65 | } 66 | 67 | private function generateTest($firstRes) 68 | { 69 | $tpl = $this->testtemplate; 70 | $tpl = str_replace('{% id %}', $this->count, $tpl); 71 | 72 | $tpl = str_replace('{% name %}', $firstRes[0], $tpl); 73 | $tpl = str_replace('{% OK %}', implode(',', $firstRes), $tpl); 74 | 75 | $this->tests.=$tpl; 76 | $this->count++; 77 | } 78 | 79 | } 80 | 81 | $p = new TestGeneratorDB; 82 | $p->generate('Names', 'boy'); 83 | $p = new TestGeneratorDB; 84 | $p->generate('Names', 'girl'); 85 | 86 | $p = new TestGeneratorDB; 87 | $p->generate('Father', 'boy'); 88 | $p = new TestGeneratorDB; 89 | $p->generate('Father', 'girl'); 90 | 91 | $p = new TestGeneratorDB; 92 | $p->generate('Sirnames', 'boy'); 93 | $p = new TestGeneratorDB; 94 | $p->generate('Sirnames', 'girl'); 95 | ?> -------------------------------------------------------------------------------- /Tests/TestGenerator/GenderDetector.both.php.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 21 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 22 | } 23 | 24 | public function generate($fname) 25 | { 26 | $this->maintemplate = file_get_contents('Template/NCLNameCaseRuTest.main'); 27 | $this->testtemplate = file_get_contents('Template/GenderGen'.$fname.'.test'); 28 | $this->resultArrB=file('Names/boy_SF.txt'); 29 | $this->resultArrG=file('Names/girl_SF.txt'); 30 | $this->count=0; 31 | $this->gender=1; 32 | //foreach ($this->resultArr as $key=>$value) 33 | //{ 34 | //$this->gender=$key+1; 35 | foreach ($this->resultArrB as $id=>$name) 36 | { 37 | $t=explode(' ', trim($name)); 38 | $this->generateTest(trim($t[0]),trim($t[1])); 39 | } 40 | $this->gender=2; 41 | //foreach ($this->resultArr as $key=>$value) 42 | //{ 43 | //$this->gender=$key+1; 44 | foreach ($this->resultArrG as $id=>$name) 45 | { 46 | $t=explode(' ', trim($name)); 47 | $this->generateTest(trim($t[0]),trim($t[1])); 48 | } 49 | //} 50 | $res=str_replace('{% tests %}', $this->tests, $this->maintemplate); 51 | $res=str_replace('{% name %}', $fname, $res); 52 | file_put_contents('../Library/GenderDetect'.$fname.'.php',$res); 53 | } 54 | 55 | private function generateTest($sname, $fname) 56 | { 57 | $tpl=$this->testtemplate; 58 | $tpl=str_replace('{% id %}', $this->count, $tpl); 59 | $tpl=str_replace('{% name %}', $fname, $tpl); 60 | $tpl=str_replace('{% sname %}', $sname, $tpl); 61 | $tpl=str_replace('{% gender %}', $this->gender, $tpl); 62 | 63 | $this->tests.=$tpl; 64 | $this->count++; 65 | } 66 | 67 | 68 | } 69 | 70 | 71 | $p= new TestGenerator; 72 | $p->generate('Both'); 73 | 74 | 75 | ?> 76 | -------------------------------------------------------------------------------- /Tests/TestGenerator/GenderDetector.generator.php.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 21 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 22 | } 23 | 24 | public function generate($fname) 25 | { 26 | $this->maintemplate = file_get_contents('Template/NCLNameCaseRuTest.main'); 27 | $this->testtemplate = file_get_contents('Template/GenderGen'.$fname.'.test'); 28 | $this->resultArrB=file('NamesAll/boy'.$fname.'.txt'); 29 | $this->resultArrG=file('NamesAll/girl'.$fname.'.txt'); 30 | $this->count=0; 31 | $this->gender=1; 32 | //foreach ($this->resultArr as $key=>$value) 33 | //{ 34 | //$this->gender=$key+1; 35 | foreach ($this->resultArrB as $id=>$name) 36 | { 37 | $this->generateTest(trim($name)); 38 | } 39 | $this->gender=2; 40 | //foreach ($this->resultArr as $key=>$value) 41 | //{ 42 | //$this->gender=$key+1; 43 | foreach ($this->resultArrG as $id=>$name) 44 | { 45 | $this->generateTest(trim($name)); 46 | } 47 | //} 48 | $res=str_replace('{% tests %}', $this->tests, $this->maintemplate); 49 | $res=str_replace('{% name %}', $fname, $res); 50 | file_put_contents('../Library/GenderDetect'.$fname.'.php',$res); 51 | } 52 | 53 | private function generateTest($name) 54 | { 55 | $tpl=$this->testtemplate; 56 | $tpl=str_replace('{% id %}', $this->count, $tpl); 57 | $tpl=str_replace('{% name %}', $name, $tpl); 58 | $tpl=str_replace('{% gender %}', $this->gender, $tpl); 59 | 60 | $this->tests.=$tpl; 61 | $this->count++; 62 | } 63 | 64 | 65 | } 66 | 67 | 68 | $p= new TestGenerator; 69 | $p->generate('name'); 70 | $p= new TestGenerator; 71 | $p->generate('sirname'); 72 | 73 | ?> 74 | -------------------------------------------------------------------------------- /Tests/TestGenerator/NCLNameCaseRuTest.generator.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 20 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 21 | } 22 | 23 | public function generate($fname, $gender) 24 | { 25 | $this->maintemplate = file_get_contents('Template/NCLNameCaseRuTest.main'); 26 | $this->testtemplate = file_get_contents('Template/NCLNameCaseRuTest'.$fname.$gender.'.test'); 27 | $this->resultArr=file('Names/'.$gender.'_full_result.txt'); 28 | $this->count=0; 29 | if ($gender=='boy') 30 | { 31 | $this->gender=1; 32 | } 33 | else 34 | { 35 | $this->gender=2; 36 | } 37 | //foreach ($this->resultArr as $key=>$value) 38 | //{ 39 | //$this->gender=$key+1; 40 | foreach ($this->resultArr as $id=>$name) 41 | { 42 | $tmpnames=explode("#",trim(str_replace('ё','е',$name))); 43 | $firstRes=array(); 44 | $secondRes=array(); 45 | $fatherRes=array(); 46 | $c=count($tmpnames); 47 | for ($i=0;$i<$c; $i++) 48 | { 49 | $cur=explode(" ",trim($tmpnames[$i])); 50 | $firstRes[]=trim($cur[1]); 51 | $secondRes[]=trim($cur[0]); 52 | $fatherRes[]=trim($cur[2]); 53 | } 54 | $this->generateTest($firstRes, $secondRes, $fatherRes); 55 | } 56 | //} 57 | $res=str_replace('{% tests %}', $this->tests, $this->maintemplate); 58 | $res=str_replace('{% name %}', $fname, $res); 59 | file_put_contents('../Library/NCLNameCaseRuTest'.$fname.$gender.'.php',$res); 60 | } 61 | 62 | private function generateTest($firstRes, $secondRes, $fatherRes) 63 | { 64 | $tpl=$this->testtemplate; 65 | $tpl=str_replace('{% id %}', $this->count, $tpl); 66 | $tpl=str_replace('{% second %}', $secondRes[0], $tpl); 67 | $tpl=str_replace('{% first %}', $firstRes[0], $tpl); 68 | $tpl=str_replace('{% father %}', $fatherRes[0], $tpl); 69 | $tpl=str_replace('{% gender %}', $this->gender, $tpl); 70 | $tpl=str_replace('{% firstOK %}', implode(',',$firstRes), $tpl); 71 | $tpl=str_replace('{% secondOK %}', implode(',',$secondRes), $tpl); 72 | $tpl=str_replace('{% fatherOK %}', implode(',',$fatherRes), $tpl); 73 | $this->tests.=$tpl; 74 | $this->count++; 75 | } 76 | 77 | 78 | } 79 | 80 | 81 | $p= new TestGenerator; 82 | $p->generate('Names', 'boy'); 83 | $p= new TestGenerator; 84 | $p->generate('Names', 'girl'); 85 | $p= new TestGenerator; 86 | $p->generate('Sirnames', 'girl'); 87 | $p= new TestGenerator; 88 | $p->generate('Sirnames', 'boy'); 89 | $p= new TestGenerator; 90 | $p->generate('Father', 'girl'); 91 | $p= new TestGenerator; 92 | $p->generate('Father', 'boy'); 93 | 94 | ?> 95 | -------------------------------------------------------------------------------- /Tests/TestGenerator/NCLNameCaseUAGenerator.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 19 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 20 | } 21 | 22 | public function generate($fname, $gender) 23 | { 24 | $this->maintemplate = file_get_contents('Template/NCLNameCaseUaTest.main'); 25 | $this->testtemplate = file_get_contents('Template/NCLNameCaseRuTest' . $fname . $gender . '.test'); 26 | //$this->resultArr=file('Names/'.$gender.'_full_result.txt'); 27 | $this->count = 0; 28 | $fnewname = $fname; 29 | if ($fnewname == 'Sirnames') 30 | { 31 | $fnewname = 'second'; 32 | } 33 | if ($gender == 'boy') 34 | { 35 | $this->gender = 1; 36 | $this->dbTable = 'boy' . strtolower($fnewname); 37 | } 38 | else 39 | { 40 | $this->gender = 2; 41 | $this->dbTable = 'girl' . strtolower($fnewname); 42 | } 43 | $this->resultArr = mysql_query("SELECT * FROM {$this->dbTable}"); 44 | //foreach ($this->resultArr as $key=>$value) 45 | //{ 46 | //$this->gender=$key+1; 47 | $all = array(); 48 | while ($row = mysql_fetch_assoc($this->resultArr)) 49 | { 50 | //$tmpnames=explode("#",trim(str_replace('ё','е',$name))); 51 | 52 | $firstRes = array(); 53 | $secondRes = array(); 54 | $fatherRes = array(); 55 | $secondRes = $fatherRes = $firstRes = explode('#', $row['nameCase']); 56 | if ($row['nameCase']) 57 | { 58 | $this->generateTest($firstRes, $secondRes, $fatherRes); 59 | } 60 | } 61 | //} 62 | $res = str_replace('{% tests %}', $this->tests, $this->maintemplate); 63 | $res = str_replace('{% name %}', $fname, $res); 64 | file_put_contents('../Library/NCLNameCaseUaTest' . $fname . $gender . '.php', $res); 65 | } 66 | 67 | private function generateTest($firstRes, $secondRes, $fatherRes) 68 | { 69 | $tpl = $this->testtemplate; 70 | $tpl = str_replace('{% id %}', $this->count, $tpl); 71 | $tpl = str_replace('{% second %}', $secondRes[0], $tpl); 72 | $tpl = str_replace('{% first %}', $firstRes[0], $tpl); 73 | $tpl = str_replace('{% father %}', $fatherRes[0], $tpl); 74 | $tpl = str_replace('{% gender %}', $this->gender, $tpl); 75 | $tpl = str_replace('{% firstOK %}', implode(',', $firstRes), $tpl); 76 | $tpl = str_replace('{% secondOK %}', implode(',', $secondRes), $tpl); 77 | $tpl = str_replace('{% fatherOK %}', implode(',', $fatherRes), $tpl); 78 | $this->tests.=$tpl; 79 | $this->count++; 80 | } 81 | 82 | } 83 | 84 | $p = new TestGeneratorDB; 85 | $p->generate('Names', 'boy'); 86 | $p = new TestGeneratorDB; 87 | $p->generate('Names', 'girl'); 88 | 89 | $p = new TestGeneratorDB; 90 | $p->generate('Father', 'boy'); 91 | $p = new TestGeneratorDB; 92 | $p->generate('Father', 'girl'); 93 | 94 | $p = new TestGeneratorDB; 95 | $p->generate('Sirnames', 'boy'); 96 | $p = new TestGeneratorDB; 97 | $p->generate('Sirnames', 'girl'); 98 | ?> -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/boyfather.txt: -------------------------------------------------------------------------------- 1 | Александрович 2 | Алексеевич 3 | Анатольевич 4 | Андреевич 5 | Антонович 6 | Аркадьевич 7 | Богданович 8 | Борисович 9 | Валентинович 10 | Валерьевич 11 | Васильевич 12 | Викторович 13 | Владимирович 14 | Вячеславович 15 | Генадиевич 16 | Георгиевич 17 | Григорьевич 18 | Данилович 19 | Дмитриевич 20 | Евгеньевич 21 | Егорович 22 | Ефимович 23 | Иванович 24 | Игоревич 25 | Ильич 26 | Иосифович 27 | Кириллович 28 | Константинович 29 | Леонидович 30 | Львович 31 | Максимович 32 | Матвеевич 33 | Михайлович 34 | Николаевич 35 | Олегович 36 | Павлович 37 | Петрович 38 | Платонович 39 | Робертович 40 | Романович 41 | Семенович 42 | Сергеевич 43 | Степанович 44 | Станиславович 45 | Тарасович 46 | Тимофеевич 47 | Федорович 48 | Феликсович 49 | Филиппович 50 | Эдуардович 51 | Юрьевич 52 | Яковлевич 53 | Ярославочвич -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/boyname.txt: -------------------------------------------------------------------------------- 1 | Авдей 2 | Аверьян 3 | Адам 4 | Адриан 5 | Аксён 6 | Александр 7 | Алексей 8 | Анатолий 9 | Аркадий 10 | Арсен 11 | Арсений 12 | Артём 13 | Артемий 14 | Артур 15 | Архип 16 | Афанас 17 | Афанасий 18 | Андрей 19 | Анисим 20 | Антип 21 | Антон 22 | Ануфрий 23 | Бенедикт 24 | Богдан 25 | Борис 26 | Борислав 27 | Бронислав 28 | Вадим 29 | Валентин 30 | Валерий 31 | Валериан 32 | Валерьян 33 | Василий 34 | Венедикт 35 | Викентий 36 | Виктор 37 | Вилен 38 | Вилор 39 | Виталий 40 | Владилен 41 | Владимир 42 | Владислав 43 | Владлен 44 | Влас 45 | Всеволод 46 | Вячеслав 47 | Гавриил 48 | Гаврила 49 | Геннадий 50 | Георгий 51 | Герасим 52 | Герман 53 | Гертруд 54 | Глеб 55 | Гордей 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 | Изот 95 | Иларион 96 | Илья 97 | Ильяс 98 | Иосип 99 | Иосиф 100 | Исаак 101 | Исак 102 | Исидор 103 | Искандер 104 | Казимир 105 | Калина 106 | Каллиник 107 | Каллистрат 108 | Капитон 109 | Карп 110 | Касьян 111 | Кирей 112 | Кирила 113 | Кирилл 114 | Клим 115 | Климент 116 | Климентий 117 | Кондрат 118 | Кондратий 119 | Конон 120 | Константин 121 | Корней 122 | Корнелий 123 | Ксенофонт 124 | Кузьма 125 | Куприян 126 | Лаврентий 127 | Лазарь 128 | Лев 129 | Левон 130 | Леонид 131 | Леон 132 | Леонтий 133 | Лука 134 | Лукьян 135 | Людвиг 136 | Макар 137 | Максим 138 | Марат 139 | Марк 140 | Маркел 141 | Мартин 142 | Мартын 143 | Мефодий 144 | Мина 145 | Минай 146 | Мирон 147 | Митрофан 148 | Михаил 149 | Михей 150 | Модест 151 | Моисей 152 | Мокей 153 | Мстислав 154 | Назар 155 | Наркис 156 | Нарцис 157 | Наум 158 | Нейл 159 | Нестер 160 | Нестор 161 | Нефёд 162 | Никандр 163 | Никанор 164 | Никита 165 | Никифор 166 | Никодим 167 | Николай 168 | Никон 169 | Нил 170 | Олег 171 | Онисим 172 | Онуфрий 173 | Орест 174 | Осип 175 | Остап 176 | Отто 177 | Павел 178 | Панкрат 179 | Панкратий 180 | Пантелей 181 | Пантелеймон 182 | Парфён 183 | Парфений 184 | Пётр 185 | Пимен 186 | Платон 187 | Полиграф 188 | Поликарп 189 | Порфир 190 | Порфирий 191 | Потап 192 | Прокоп 193 | Прокопий 194 | Прокофий 195 | Прохор 196 | Роберт 197 | Родион 198 | Роман 199 | Ростислав 200 | Руслан 201 | Савастей 202 | Савва 203 | Савватий 204 | Савелий 205 | Самсон 206 | Святослав 207 | Семён 208 | Серафим 209 | Сергей 210 | Сергий 211 | Сидор 212 | Созон 213 | Созонт 214 | Спиридон 215 | Станислав 216 | Степан 217 | Тарас 218 | Теймураз 219 | Терентий 220 | Тимофей 221 | Тимур 222 | Тихон 223 | Трифон 224 | Трофим 225 | Устин 226 | Фадей 227 | Федот 228 | Феликс 229 | Фёдор 230 | Федосий 231 | Феодосий 232 | Феоктист 233 | Феофан 234 | Филат 235 | Филимон 236 | Филипп 237 | Фока 238 | Фома 239 | Фрол 240 | Харитон 241 | Харлам 242 | Харламп 243 | Харлампий 244 | Чеслав 245 | Эдгар 246 | Эдгард 247 | Эдуард 248 | Юлиан 249 | Юлий 250 | Юрий 251 | Яков 252 | Ярослав 253 | Ян -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/compile.php: -------------------------------------------------------------------------------- 1 | $countsirname) 24 | { 25 | $full=cl($sirnames[rand(0,($countsirname-1))]); 26 | } 27 | else 28 | { 29 | $full=cl($sirnames[$i]); 30 | } 31 | $full.=' '; 32 | if ($cur>$countname) 33 | { 34 | $full.=cl($names[rand(0,($countname-1))]); 35 | } 36 | else 37 | { 38 | $full.=cl($names[$i]); 39 | } 40 | $full.=' '; 41 | if ($cur>$countfather) 42 | { 43 | $full.=cl($fathers[rand(0,($countfather-1))]); 44 | } 45 | else 46 | { 47 | $full.=cl($fathers[$i]); 48 | } 49 | $res[]=$full; 50 | } 51 | print_r(implode("\n", $res)); 52 | file_put_contents('../Names/'.$type."_full.txt", implode("\n", $res)); 53 | ?> 54 | -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/compile2.php: -------------------------------------------------------------------------------- 1 | $countsirname) 22 | { 23 | $full=cl($sirnames[rand(0,($countsirname-1))]); 24 | } 25 | else 26 | { 27 | $full=cl($sirnames[$i]); 28 | } 29 | $full.=' '; 30 | if ($cur>$countname) 31 | { 32 | $full.=cl($names[rand(0,($countname-1))]); 33 | } 34 | else 35 | { 36 | $full.=cl($names[$i]); 37 | } 38 | $res[]=$full; 39 | } 40 | print_r(implode("\n", $res)); 41 | file_put_contents('../Names/'.$type."_SF.txt", implode("\n", $res)); 42 | ?> 43 | -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/girlfather.txt: -------------------------------------------------------------------------------- 1 | Александровна 2 | Алексеевна 3 | Анатольевна 4 | Андреевна 5 | Антоновна 6 | Аркадьевна 7 | Богдановна 8 | Борисовна 9 | Валентиновна 10 | Валерьевна 11 | Васильевна 12 | Викторовна 13 | Владимировна 14 | Владиславовна 15 | Вячеславовна 16 | Генадиевна 17 | Георгиевна 18 | Григорьевна 19 | Даниловна 20 | Дмитриевна 21 | Евгеньевна 22 | Егоровна 23 | Ефимовна 24 | Ивановна 25 | Игоревна 26 | Ильинична 27 | Кирилловна 28 | Константиновна 29 | Леонидовна 30 | Львовна 31 | Максимовна 32 | Михайловна 33 | Николаевна 34 | Олеговна 35 | Павловна 36 | Петровна 37 | Робертовна 38 | Романовна 39 | Семеновна 40 | Сергеевна 41 | Степановна 42 | Станиславовна 43 | Тарасовна 44 | Федоровна 45 | Феликсовна 46 | Филипповна 47 | Эдуардовна 48 | Юрьевна 49 | Яковлевна -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/girlname.txt: -------------------------------------------------------------------------------- 1 | Августа 2 | Авдотья 3 | Аврелия 4 | Агния 5 | Аграфена 6 | Агриппина 7 | Аделаида 8 | Аделина 9 | Азиза 10 | Аида 11 | Александра 12 | Алина 13 | Алиса 14 | Алла 15 | Алсу 16 | Альбина 17 | Алёна 18 | Анастасия 19 | Ангелина 20 | Анжелика 21 | Анисия 22 | Анисья 23 | Анна 24 | Антонина 25 | Анушка 26 | Аполлинария 27 | Аполлония 28 | Арна 29 | Асель 30 | Аурика 31 | Аэлита 32 | Беата 33 | Божена 34 | Валентина 35 | Варвара 36 | Василиса 37 | Вера 38 | Вероника 39 | Виктория 40 | Виолетта 41 | Владислава 42 | Галина 43 | Геннадия 44 | Глафира 45 | Дария 46 | Дарья 47 | Диана 48 | Ева 49 | Евгения 50 | Евдокия 51 | Евфросиния 52 | Екатерина 53 | Елена 54 | Елизавета 55 | Жанна 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 | Надежда 95 | Наталия 96 | Нина 97 | Нинель 98 | Нона 99 | Нонна 100 | Оксана 101 | Октавия 102 | Олеся 103 | Ольга 104 | Павлина 105 | Пелагея 106 | Полина 107 | Прасковья 108 | Рада 109 | Раиса 110 | Ребекка 111 | Ревекка 112 | Розалия 113 | Розарио 114 | Сара 115 | Светлана 116 | Снежана 117 | Стелла 118 | Степанида 119 | Стефания 120 | Суламифь 121 | Таисия 122 | Тамара 123 | Татьяна 124 | Улла 125 | Ульрика 126 | Ульяна 127 | Урсула 128 | Фаина 129 | Фатима 130 | Феба 131 | Феодора 132 | Филлида 133 | Фрида 134 | Фёкла 135 | Шарлотта 136 | Шейла 137 | Шона 138 | Элеонора 139 | Элина 140 | Эльвира 141 | Эми 142 | Юлианна 143 | Юлия 144 | Юния 145 | Ярослава 146 | -------------------------------------------------------------------------------- /Tests/TestGenerator/NamesAll/importDB.php: -------------------------------------------------------------------------------- 1 | 21 | -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/GenderGenBoth.test: -------------------------------------------------------------------------------- 1 | 2 | public function testGenDetect{% id %}() 3 | { 4 | $this->object->setFirstName('{% name %}'); 5 | $this->object->setSecondName('{% sname %}'); 6 | $this->assertEquals('{% gender %}-{% name %} {% sname %}', $this->object->genderAutoDetect().'-{% name %} {% sname %}'); 7 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/GenderGenname.test: -------------------------------------------------------------------------------- 1 | 2 | public function testGenDetect{% id %}() 3 | { 4 | $this->object->setFirstName('{% name %}'); 5 | $this->assertEquals('{% gender %}-{% name %}', $this->object->genderAutoDetect().'-{% name %}'); 6 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/GenderGensirname.test: -------------------------------------------------------------------------------- 1 | 2 | public function testGenDetect{% id %}() 3 | { 4 | $this->object->setSecondName('{% name %}'); 5 | $this->assertEquals('{% gender %}-{% name %}', $this->object->genderAutoDetect().'-{% name %}'); 6 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseCrazyTest.test: -------------------------------------------------------------------------------- 1 | 2 | public function testCrazy{% id %}() 3 | { 4 | $this->assertEquals(explode(',','{% OK %}'), $this->object->q('{% name %}')); 5 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTest.main: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseRu; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | {% tests %} 33 | 34 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTestFatherboy.test: -------------------------------------------------------------------------------- 1 | 2 | public function testFatherMan{% id %}() 3 | { 4 | $this->object->setFatherName('{% father %}'); 5 | $this->object->setGender(1); 6 | 7 | $this->assertEquals(explode(',','{% fatherOK %}'), $this->object->getFatherNameCase()); 8 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTestFathergirl.test: -------------------------------------------------------------------------------- 1 | 2 | public function testFatherWoman{% id %}() 3 | { 4 | $this->object->setFatherName('{% father %}'); 5 | $this->object->setGender(2); 6 | 7 | $this->assertEquals(explode(',','{% fatherOK %}'), $this->object->getFatherNameCase()); 8 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTestNamesboy.test: -------------------------------------------------------------------------------- 1 | 2 | public function testNameMan{% id %}() 3 | { 4 | $this->object->setFirstName('{% first %}'); 5 | $this->object->setGender(1); 6 | 7 | $this->assertEquals(explode(',','{% firstOK %}'), $this->object->getFirstNameCase()); 8 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTestNamesgirl.test: -------------------------------------------------------------------------------- 1 | 2 | public function testNameWoman{% id %}() 3 | { 4 | $this->object->setFirstName('{% first %}'); 5 | $this->object->setGender(2); 6 | 7 | $this->assertEquals(explode(',','{% firstOK %}'), $this->object->getFirstNameCase()); 8 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTestSirnamesboy.test: -------------------------------------------------------------------------------- 1 | 2 | public function testManSirname{% id %}() 3 | { 4 | $this->object->setSecondName('{% second %}'); 5 | $this->object->setGender(1); 6 | 7 | $this->assertEquals(explode(',','{% secondOK %}'), $this->object->getSecondNameCase()); 8 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseRuTestSirnamesgirl.test: -------------------------------------------------------------------------------- 1 | 2 | public function testWomanSirname{% id %}() 3 | { 4 | $this->object->setSecondName('{% second %}'); 5 | $this->object->setGender(2); 6 | 7 | $this->assertEquals(explode(',','{% secondOK %}'), $this->object->getSecondNameCase()); 8 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NCLNameCaseUaTest.main: -------------------------------------------------------------------------------- 1 | object = new NCLNameCaseUa; 21 | } 22 | 23 | /** 24 | * Tears down the fixture, for example, closes a network connection. 25 | * This method is called after a test is executed. 26 | */ 27 | protected function tearDown() 28 | { 29 | 30 | } 31 | 32 | {% tests %} 33 | 34 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/Template/NameSplit.test: -------------------------------------------------------------------------------- 1 | 2 | public function testSplDetect{% id %}() 3 | { 4 | $this->assertEquals('{% gender %}-{% name %}', trim($this->object->getFullNameFormat('{% name %}')).'-{% name %}'); 5 | } -------------------------------------------------------------------------------- /Tests/TestGenerator/UAGenderDetector.both.php.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 23 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 24 | } 25 | 26 | private function make($gender) 27 | { 28 | $res = mysql_query("SELECT * FROM {$gender}second"); 29 | $secondArr = array(); 30 | while($row = mysql_fetch_assoc($res)) 31 | { 32 | $secondArr[] = $row['name']; 33 | } 34 | $res = mysql_query("SELECT * FROM {$gender}names"); 35 | $firstArr = array(); 36 | while($row = mysql_fetch_assoc($res)) 37 | { 38 | $firstArr[] = $row['name']; 39 | } 40 | 41 | $countFirst = count($firstArr); 42 | $countSecond = count($secondArr); 43 | 44 | $max = max(array($countFirst, $countSecond)); 45 | 46 | $result = array(); 47 | 48 | for($i=0; $i<$max; $i++) 49 | { 50 | $indexFirst = $i % $countFirst; 51 | $indexSecond = $i % $countSecond; 52 | 53 | $this->generateTest($secondArr[$indexSecond],$firstArr[$indexFirst]); 54 | } 55 | 56 | return $result; 57 | } 58 | 59 | public function generate() 60 | { 61 | $this->maintemplate = file_get_contents('Template/NCLNameCaseUaTest.main'); 62 | $this->testtemplate = file_get_contents('Template/GenderGenBoth.test'); 63 | 64 | $this->count=0; 65 | 66 | 67 | $this->gender = 1; 68 | $this->make('boy'); 69 | 70 | 71 | $this->gender = 2; 72 | $this->make('girl'); 73 | 74 | 75 | $res=str_replace('{% tests %}', $this->tests, $this->maintemplate); 76 | file_put_contents('../Library/GenderDetectUABoth.php',$res); 77 | } 78 | 79 | private function generateTest($sname, $fname) 80 | { 81 | $tpl=$this->testtemplate; 82 | $tpl=str_replace('{% id %}', $this->count, $tpl); 83 | $tpl=str_replace('{% name %}', $fname, $tpl); 84 | $tpl=str_replace('{% sname %}', $sname, $tpl); 85 | $tpl=str_replace('{% gender %}', $this->gender, $tpl); 86 | 87 | $this->tests.=$tpl; 88 | $this->count++; 89 | } 90 | 91 | 92 | } 93 | 94 | 95 | $p= new TestGenerator; 96 | $p->generate('Both'); 97 | 98 | 99 | ?> 100 | -------------------------------------------------------------------------------- /Tests/TestGenerator/UAGenderDetector.generator.php.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 20 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 21 | } 22 | 23 | public function generate($fname) 24 | { 25 | $this->maintemplate = file_get_contents('Template/NCLNameCaseUaTest.main'); 26 | $this->testtemplate = file_get_contents('Template/GenderGen' . $fname . '.test'); 27 | // $this->resultArrB=file('NamesAll/boy'.$fname.'.txt'); 28 | // $this->resultArrG=file('NamesAll/girl'.$fname.'.txt'); 29 | $this->count = 0; 30 | 31 | 32 | $fnewname = $fname; 33 | if ($fnewname == 'sirname') 34 | { 35 | $fnewname = 'second'; 36 | } 37 | else 38 | { 39 | $fnewname = 'names'; 40 | } 41 | 42 | 43 | $this->gender = 1; 44 | $this->dbTable = 'boy' . strtolower($fnewname); 45 | $this->resultArr = mysql_query("SELECT * FROM {$this->dbTable}"); 46 | //foreach ($this->resultArr as $key=>$value) 47 | //{ 48 | //$this->gender=$key+1; 49 | while ($row = mysql_fetch_array($this->resultArr)) 50 | { 51 | $this->generateTest(trim($row['name'])); 52 | } 53 | 54 | $this->dbTable = 'girl' . strtolower($fnewname); 55 | $this->gender = 2; 56 | $this->resultArr = mysql_query("SELECT * FROM {$this->dbTable}"); 57 | //foreach ($this->resultArr as $key=>$value) 58 | //{ 59 | //$this->gender=$key+1; 60 | while ($row = mysql_fetch_array($this->resultArr)) 61 | { 62 | $this->generateTest(trim($row['name'])); 63 | } 64 | //} 65 | $res = str_replace('{% tests %}', $this->tests, $this->maintemplate); 66 | $res = str_replace('{% name %}', $fname, $res); 67 | file_put_contents('../Library/GenderDetectUA' . $fname . '.php', $res); 68 | } 69 | 70 | private function generateTest($name) 71 | { 72 | $tpl = $this->testtemplate; 73 | $tpl = str_replace('{% id %}', $this->count, $tpl); 74 | $tpl = str_replace('{% name %}', $name, $tpl); 75 | $tpl = str_replace('{% gender %}', $this->gender, $tpl); 76 | 77 | $this->tests.=$tpl; 78 | $this->count++; 79 | } 80 | 81 | } 82 | 83 | $p = new TestGenerator; 84 | $p->generate('name'); 85 | $p = new TestGenerator; 86 | $p->generate('sirname'); 87 | ?> 88 | -------------------------------------------------------------------------------- /Tests/TestGenerator/UAnameSplit.generator.php.php: -------------------------------------------------------------------------------- 1 | maintemplate = file_get_contents('Template/NCLNameCaseUaTest.main'); 35 | $this->testtemplate = file_get_contents('Template/NameSplit.test'); 36 | 37 | $this->count = 0; 38 | if ($fname == 'name') 39 | { 40 | $this->gender = 'N'; 41 | $tableName = 'names'; 42 | } 43 | elseif ($fname == 'sirname') 44 | { 45 | $this->gender = 'S'; 46 | $tableName = 'second'; 47 | } 48 | else 49 | { 50 | $this->gender = 'F'; 51 | $tableName = 'father'; 52 | } 53 | 54 | $names = array_merge($this->getList('boy', $tableName), $this->getList('girl', $tableName)); 55 | 56 | 57 | //foreach ($this->resultArr as $key=>$value) 58 | //{ 59 | //$this->gender=$key+1; 60 | foreach ($names as $id => $name) 61 | { 62 | $this->generateTest(trim($name)); 63 | } 64 | //foreach ($this->resultArr as $key=>$value) 65 | //{ 66 | //$this->gender=$key+1; 67 | // foreach ($this->resultArrG as $id => $name) 68 | // { 69 | // $this->generateTest(trim($name)); 70 | // } 71 | //} 72 | $res = str_replace('{% tests %}', $this->tests, $this->maintemplate); 73 | $res = str_replace('{% name %}', $fname, $res); 74 | file_put_contents('../Library/NameSplitUA' . $fname . '.php', $res); 75 | } 76 | 77 | private function generateTest($name) 78 | { 79 | $tpl = $this->testtemplate; 80 | $tpl = str_replace('{% id %}', $this->count, $tpl); 81 | $tpl = str_replace('{% name %}', $name, $tpl); 82 | $tpl = str_replace('{% gender %}', $this->gender, $tpl); 83 | 84 | $this->tests.=$tpl; 85 | $this->count++; 86 | } 87 | 88 | } 89 | 90 | $p = new TestGenerator; 91 | $p->generate('name'); 92 | $p = new TestGenerator; 93 | $p->generate('sirname'); 94 | $p = new TestGenerator; 95 | $p->generate('father'); 96 | ?> 97 | -------------------------------------------------------------------------------- /Tests/TestGenerator/YandexLoader.php: -------------------------------------------------------------------------------- 1 | (.*?)<\/inflection>#ie", $content, $matches); 16 | foreach ($matches[1] as $key => $value) 17 | { 18 | $matches[1][$key] = trim($value); 19 | } 20 | return implode("#", $matches[1]); 21 | } 22 | 23 | $names = file("Names/girl_full.txt"); 24 | $r = fopen("Names/girl_full_result.txt", "w"); 25 | foreach ($names as $key => $value) 26 | { 27 | $nn = get_text($value); 28 | fwrite($r, $nn . "\n"); 29 | } 30 | fclose($r); 31 | ?> -------------------------------------------------------------------------------- /Tests/TestGenerator/nameSplit.generator.php.php: -------------------------------------------------------------------------------- 1 | resultArr[]=file('Names/boy_full_result.txt'); 20 | //$this->resultArr[]=file('Names/girl_full_result.txt'); 21 | } 22 | 23 | public function generate($fname) 24 | { 25 | $this->maintemplate = file_get_contents('Template/NCLNameCaseRuTest.main'); 26 | $this->testtemplate = file_get_contents('Template/NameSplit.test'); 27 | $this->resultArrB=file('NamesAll/boy'.$fname.'.txt'); 28 | $this->resultArrG=file('NamesAll/girl'.$fname.'.txt'); 29 | $this->count=0; 30 | if ($fname=='name') 31 | $this->gender='N'; 32 | elseif($fname=='sirname') 33 | $this->gender='S'; 34 | else 35 | { 36 | $this->gender='F'; 37 | } 38 | //foreach ($this->resultArr as $key=>$value) 39 | //{ 40 | //$this->gender=$key+1; 41 | foreach ($this->resultArrB as $id=>$name) 42 | { 43 | $this->generateTest(trim($name)); 44 | } 45 | //foreach ($this->resultArr as $key=>$value) 46 | //{ 47 | //$this->gender=$key+1; 48 | foreach ($this->resultArrG as $id=>$name) 49 | { 50 | $this->generateTest(trim($name)); 51 | } 52 | //} 53 | $res=str_replace('{% tests %}', $this->tests, $this->maintemplate); 54 | $res=str_replace('{% name %}', $fname, $res); 55 | file_put_contents('../Library/NameSplit'.$fname.'.php',$res); 56 | } 57 | 58 | private function generateTest($name) 59 | { 60 | $tpl=$this->testtemplate; 61 | $tpl=str_replace('{% id %}', $this->count, $tpl); 62 | $tpl=str_replace('{% name %}', $name, $tpl); 63 | $tpl=str_replace('{% gender %}', $this->gender, $tpl); 64 | 65 | $this->tests.=$tpl; 66 | $this->count++; 67 | } 68 | 69 | 70 | } 71 | 72 | 73 | $p= new TestGenerator; 74 | $p->generate('name'); 75 | $p= new TestGenerator; 76 | $p->generate('sirname'); 77 | $p= new TestGenerator; 78 | $p->generate('father'); 79 | ?> 80 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/boyfather.txt: -------------------------------------------------------------------------------- 1 | Олександрович 2 | Миколайович 3 | Кузьмич 4 | Петрович 5 | Ілліч -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/boyname.txt: -------------------------------------------------------------------------------- 1 | Аарон 2 | Абакум 3 | Абрам 4 | Августин 5 | Авесалом 6 | Авксентій 7 | Аврелій 8 | Автоном 9 | Адам 10 | Адріян 11 | Адріан 12 | Азар 13 | Алевтин 14 | Альберт 15 | Амвросій 16 | Амнон 17 | Амос 18 | Анастас 19 | Анастасій 20 | Андрій 21 | Антоній 22 | Антон 23 | Анісій 24 | Аркадій 25 | Арсен 26 | Арсеній 27 | Артем 28 | Архип 29 | Артем 30 | Атанас 31 | Аскольд 32 | Бажан 33 | Біловид 34 | Білогост 35 | Біломир 36 | Білослав 37 | Білотур 38 | Білян 39 | Благовид 40 | Благовіст 41 | Благодар 42 | Благодат 43 | Благомир 44 | Благослав 45 | Богдан 46 | Боговір 47 | Боговіст 48 | Богодар 49 | Боголад 50 | Боголіп 51 | Боголюб 52 | Богород 53 | Богосвят 54 | Богумил 55 | Богумир 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 | Величко 95 | Вербан 96 | Вернидуб 97 | Вернислав 98 | Веселан 99 | Витомир 100 | Вишата 101 | Вишезор 102 | Вишеслав 103 | Вір 104 | Віродан 105 | Віродар 106 | Вірослав 107 | Віст 108 | Вістан 109 | Вітан 110 | Вітомир 111 | Вітрян 112 | Влад 113 | Владислав 114 | Власт 115 | Вогнедар 116 | Вогнян 117 | Водограй 118 | Водотрав 119 | Воїслав 120 | Волелюб 121 | Володар 122 | Володимир 123 | Володислав 124 | Воля 125 | Воротислав 126 | Вратан 127 | Вратислав 128 | Всевлад 129 | Всеволод 130 | Вселюб 131 | Вселюд 132 | Всеслав 133 | В'ячеслав 134 | Гарнослав 135 | Гатусил 136 | Гатуслав 137 | Гервасій 138 | Гладко 139 | Гліб 140 | Годомир 141 | Голубко 142 | Горун 143 | Гордій 144 | Гордислав 145 | Гордогост 146 | Гордодум 147 | Гордомисл 148 | Гордослав 149 | Гордята 150 | Горигляд 151 | Горимир 152 | Горимисл 153 | Горисвіт 154 | Горислав 155 | Горицвіт 156 | Гостомисл 157 | Гострозір 158 | Гостята 159 | Градимир 160 | Градислав 161 | Гранислав 162 | Грива 163 | Григорій 164 | Гремислав 165 | Грозан 166 | Громовик 167 | Гуляйвітер 168 | Густомисл 169 | Далемил 170 | Далемир 171 | Далібор 172 | Дан 173 | Данило 174 | Данко 175 | Дантур 176 | Дар 177 | Дарій 178 | Дарибог 179 | Даромир 180 | Держикрай 181 | Держислав 182 | Дибач 183 | Дивозір 184 | Дій 185 | Добрибій 186 | Добривод 187 | Добрик 188 | Добрило 189 | Добриня 190 | Добрисвіт 191 | Добровіст 192 | Доброгост 193 | Добродум 194 | Добролик 195 | Добролюб 196 | Добромил 197 | Добромир 198 | Добромисл 199 | Доброслав 200 | Доморад 201 | Домослав 202 | Дорогобуг 203 | Дорогомир 204 | Дорогомисл 205 | Дорогосил 206 | Дорогочин 207 | Драган 208 | Дружелюб 209 | Жадан 210 | Ждан 211 | Живорід 212 | Живосил 213 | Живослав 214 | Житомир 215 | Життєлюб 216 | Збоїслав 217 | Зборислав 218 | Звенигор 219 | Звенимир 220 | Звенислав 221 | Здоровега 222 | Земислав 223 | Зеновій 224 | Зіновій 225 | Зиновій 226 | Злат 227 | Златомир 228 | Златоус 229 | Златодан 230 | Злотан 231 | Злотодан 232 | Зорегляд 233 | Зоремир 234 | Зорепад 235 | Зореслав 236 | Зорян 237 | Ізяслав 238 | Ігор 239 | Іван 240 | Квітан 241 | Києслав 242 | Кий 243 | Кирило 244 | Киян 245 | Княжослав 246 | Корній 247 | Колодар 248 | Колодій 249 | Косак 250 | Красун 251 | Крилач 252 | Куйбіда 253 | Курило 254 | Лад 255 | Ладимир 256 | Ладислав 257 | Ладолюб 258 | Ладомир 259 | Лев 260 | Левко 261 | Листвич 262 | Ліпослав 263 | Лоліт 264 | Лук'ян 265 | Любим 266 | Любовир 267 | Любодар 268 | Любозар 269 | Любомил 270 | Любомир 271 | Любомисл 272 | Любомудр 273 | Любослав 274 | Людомил 275 | Людомир 276 | Людислав 277 | Лютобор 278 | Лютомисл 279 | Магадар 280 | Магамир 281 | Магаслав 282 | Маркіян 283 | Май 284 | Мал 285 | Малик 286 | Маломир 287 | Марко 288 | Мар'ян 289 | Медомир 290 | Межамир 291 | Мечислав 292 | Мизамир 293 | Милан 294 | Милован 295 | Милодар 296 | Милодух 297 | Милослав 298 | Мир 299 | Миробог 300 | Мирогост 301 | Миролюб 302 | Мирослав 303 | Мовчан 304 | Молибог 305 | Мстибог 306 | Мстивой 307 | Мстислав 308 | Мудролюб 309 | Нагнибіда 310 | Надій 311 | Найден 312 | Наслав 313 | Недан 314 | Немир 315 | Непобор 316 | Нігослав 317 | Назар 318 | Одинець 319 | Олег 320 | Олександр 321 | Олексій 322 | Олесь 323 | Олелько 324 | Орел 325 | Орест 326 | Орь 327 | Оримир 328 | Осмомисл 329 | Острозор 330 | Остромир 331 | Остромов 332 | Охрім 333 | Павло 334 | Первушко 335 | Перелюб 336 | Перемил 337 | Перемисл 338 | Пересвіт 339 | Переяслав 340 | Першик 341 | Подолян 342 | Позвізд 343 | Полель 344 | Полян 345 | Пребислав 346 | Предислав 347 | Пугач 348 | Путило 349 | Путята 350 | Рава 351 | Рад 352 | Радечко 353 | Радивой 354 | Радило 355 | Радим 356 | Радимир 357 | Радислав 358 | Радко 359 | Радован 360 | Радогост 361 | Радомир 362 | Радомисл 363 | Радослав 364 | Ратибор 365 | Ратимир 366 | Ратислав 367 | Ревун 368 | Рід 369 | Рогволод 370 | Родан 371 | Родослав 372 | Рожден 373 | Розум 374 | Роксолан 375 | Роман 376 | Ростислав 377 | Ростичар 378 | Ростун 379 | Рудан 380 | Рус 381 | Руслан 382 | Русудан 383 | Сармат 384 | Сварг 385 | Сват 386 | Світ 387 | Світлан 388 | Світлогор 389 | Світогор 390 | Світовид 391 | Світодар 392 | Світозар 393 | Світокол 394 | Світолик 395 | Світолюб 396 | Світомир 397 | Світослав 398 | Світояр 399 | Свободан 400 | Святовид 401 | Святогор 402 | Святолюб 403 | Святополк 404 | Святослав 405 | Семибор 406 | Семирад 407 | Сердитко 408 | Сила 409 | Силолюб 410 | Силослав 411 | Синьоок 412 | Скол 413 | Слава 414 | Славобор 415 | Славолюб 416 | Славомир 417 | Славута 418 | Снага 419 | Сніжан 420 | Сновид 421 | Снозір 422 | Собібор 423 | Собімир 424 | Собіслав 425 | Сокіл 426 | Соловей 427 | Сологуб 428 | Сонцевид 429 | Сонцедар 430 | Сонцелик 431 | Спас 432 | Станимир 433 | Станіслав 434 | Стародум 435 | Степан 436 | Стефаній 437 | Стожар 438 | Стоймир 439 | Стоян 440 | Судивой 441 | Судимир 442 | Судислав 443 | Сурма 444 | Тарас 445 | Татолюб 446 | Татомир 447 | Твердигост 448 | Твердислав 449 | Творилад 450 | Творимир 451 | Творислав 452 | Тихомир 453 | Тихон 454 | Толигнів 455 | Толислав 456 | Тригост 457 | Троян 458 | Триріг 459 | Тур 460 | Турбог 461 | Турбрід 462 | Уличан 463 | Ус 464 | Хвала 465 | Хвалибог 466 | Хвалимир 467 | Ходота 468 | Хорив 469 | Хорошко 470 | Хорошун 471 | Хотибор 472 | Хотимир 473 | Хотян 474 | Хранимир 475 | Худан 476 | Царко 477 | Цвітан 478 | Чара 479 | Чернин 480 | Чеслав 481 | Чесмил 482 | Честислав 483 | Чорновіл 484 | Чорнота 485 | Чорнотур 486 | Щастибог 487 | Щастислав 488 | Щедрогост 489 | Щек 490 | Юрій 491 | Юлій 492 | Ява 493 | Явір 494 | Яволод 495 | Яр 496 | Ярема 497 | Ярило 498 | Яровид 499 | Яровит 500 | Яромил 501 | Яромир 502 | Яромисл 503 | Ярополк 504 | Яросвіт 505 | Ярослав 506 | Ярош 507 | Яртур 508 | Ярчик 509 | Ясен 510 | Ясновид 511 | Ясногор 512 | Яснозір 513 | Яснолик 514 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/boysecond.txt: -------------------------------------------------------------------------------- 1 | Єрмоленко 2 | Єсипенко 3 | Іванів 4 | Іваненко 5 | Іванченко 6 | Іванчук 7 | Іванюк 8 | Івахненко 9 | Івашко 10 | Іващенко 11 | Івченко 12 | Іллєнко 13 | Іловайські 14 | Ільницький 15 | Ільченко 16 | Іщенко 17 | Абраменко 18 | Абрамчук 19 | Адамчук 20 | Акуленко 21 | Алексєєнко 22 | Алексійчук 23 | Андрієнко 24 | Андрійчук 25 | Андрейко 26 | Андрусів 27 | Андрушків 28 | Андрущенко 29 | Анищенко 30 | Антонюк 31 | Арсенич 32 | Артюх 33 | Атаманчук 34 | Біла 35 | Білас 36 | Білий 37 | Білодід 38 | Білоус 39 | Баб'юк 40 | Бабійчук 41 | Бабак 42 | Бабчук 43 | Багмут 44 | Багрій 45 | Бадлак 46 | Бажан 47 | Балтача 48 | Бандура 49 | Баран 50 | Баранець 51 | Барановський 52 | Баранюк 53 | Батюк 54 | Бачинський 55 | Бебешко 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 | Верхола 95 | Винокур 96 | Висоцькі 97 | Вишневецькі 98 | Влох 99 | Воблий 100 | Вовк 101 | Возняк 102 | Войнаровські 103 | Волох 104 | Волошин 105 | Волощук 106 | Вороновський 107 | Гаврилів 108 | Гавриленко 109 | Гаврилюк 110 | Галенковські 111 | Гальченко 112 | Гамалія 113 | Ганицький 114 | Гарань 115 | Гармаш 116 | Гасай 117 | Гасюк 118 | Герасименко 119 | Геращенко 120 | Герцик 121 | Герцики 122 | Гладченко 123 | Глоба 124 | Гнідичі 125 | Гнатюк 126 | Гоголі 127 | Гоголь 128 | Годунок 129 | Головатий 130 | Головко 131 | Голуб 132 | Голубничий 133 | Гольшанські 134 | Гонта 135 | Гончар 136 | Гончаренко 137 | Гончаров 138 | Горбаль 139 | Гордієнко 140 | Гординські 141 | Гошовські 142 | Гошовський 143 | Грінченко 144 | Грабович 145 | Грабовський 146 | Григоренко 147 | Григорович 148 | Григорович-Барський 149 | Григорчук 150 | Грицак 151 | Гриценко 152 | Гришко 153 | Громики 154 | Гудзій 155 | Гудзь 156 | Гуменюк 157 | Гунько 158 | Діденко 159 | Даниленко 160 | Даньків 161 | Данькевич 162 | Дараган 163 | Дашкевич 164 | Дем'яненко 165 | Дем'янчук 166 | Денисенко 167 | Джус 168 | Дзюба 169 | Дикань 170 | Дмитерко 171 | Довженко 172 | Домонтовичі 173 | Дорош 174 | Дорошенко 175 | Доценко 176 | Дочинець 177 | Драгоманови 178 | Дудко 179 | Дунін-Борковські 180 | Дяків 181 | Дяченко 182 | Ейбоженко 183 | Жайворон 184 | Жаліло 185 | Ждановичі 186 | Жежерін 187 | Желєзняк 188 | Железняк 189 | Жилко 190 | Жирко 191 | Жук 192 | Жупанський 193 | Жураківські 194 | Зінов'єв 195 | Заєць 196 | Забашта 197 | Заболотний 198 | Завальнюк 199 | Закревські 200 | Закусило 201 | Залізняк 202 | Заруба 203 | Засядько 204 | Захаренко 205 | Захарчук 206 | Заяць 207 | Заячківський 208 | Збаразькі 209 | Зленко 210 | Значко-Яворські 211 | Золотаренко 212 | Кабачок 213 | Каганець 214 | Калашники 215 | Калинович 216 | Кандиби 217 | Карашевичі 218 | Кармалюк 219 | Карпенко 220 | Кириленко 221 | Кисилі 222 | Китастий 223 | Кицай 224 | Клименко 225 | Климчук 226 | Кмета 227 | Книш 228 | Ковалів 229 | Коваленко 230 | Коваль 231 | Ковальчик 232 | Ковальчук 233 | Кованько 234 | Ковтун 235 | Козаченко 236 | Козачинський 237 | Козачок 238 | Козубенко 239 | Колесник 240 | Колодій 241 | Колодний 242 | Коломієць 243 | Комар 244 | Кондратюк 245 | Кониські 246 | Корецький 247 | Корж 248 | Корнійчук 249 | Коробка 250 | Королюк 251 | Короткевич 252 | Корпанюк 253 | Корчак 254 | Корчинський 255 | Косенко 256 | Костенко 257 | Коструба 258 | Костюк 259 | Котляр 260 | Котляревський 261 | Кравців 262 | Кравченко 263 | Кравчук 264 | Красовський 265 | Криворучко 266 | Крикуненко 267 | Крупські 268 | Кузьмінський 269 | Кулиняк 270 | Кульчицький 271 | Купчинський 272 | Курцевичі 273 | Кухаренко 274 | Куц 275 | Куценко 276 | Кучер 277 | Кучеренко 278 | Кушнір 279 | Лаба 280 | Лаврін 281 | Лаврик 282 | Лавриненко 283 | Лазаревські 284 | Лазарчук 285 | Лазорко 286 | Лашкевичі 287 | Левицький 288 | Левковські 289 | Левченко 290 | Леонтовичі 291 | Лесів 292 | Лесевичі 293 | Лисенко 294 | Литвин 295 | Литвиненко 296 | Литвинов 297 | Литовченко 298 | Лозина-Лозинський 299 | Лопатинський 300 | Лук'яненко 301 | Лукашевичі 302 | Лукомський 303 | Луценко 304 | Людкевич 305 | Ляшенко 306 | Ляшенко 307 | Мірошниченко 308 | Мірчук 309 | Міщенко 310 | Мазаракі 311 | Мазепи 312 | Мазур 313 | Макаренко 314 | Максименко 315 | Маланчук 316 | Малаховські 317 | Малишко 318 | Малкович 319 | Мамчур 320 | Маркевич 321 | Маркевичі 322 | Мартиненко 323 | Мартоси 324 | Марунчак 325 | Марценюк 326 | Марченко 327 | Марчук 328 | Масоха 329 | Матвієнко 330 | Матюшенко 331 | Маценко 332 | Мацюк 333 | Мельник 334 | Мельниченко 335 | Мельничук 336 | Микитенко 337 | Микитин 338 | Милорадовичі 339 | Мирон 340 | Михайленко 341 | Михайличенко 342 | Михайлюк 343 | Мицик 344 | Мовчан 345 | Могили 346 | Модзалевські 347 | Моргун 348 | Мороз 349 | Мосендзи 350 | Москаленко 351 | Москаль 352 | Мошак 353 | Муратова 354 | Мусієнко 355 | Назаренко 356 | Наливайко 357 | Нащинські 358 | Негребецький 359 | Непорожній 360 | Нестеренко 361 | Нечай 362 | Нечипоренко 363 | Оберемченко 364 | Овчаренко 365 | Ограновичі 366 | Олійник 367 | Олексієнко 368 | Омельченко 369 | Омельчук 370 | Онищенко 371 | Онопенко 372 | Опанасенко 373 | Орлики 374 | Осадчук 375 | Осика 376 | Остапенко 377 | Остроградський 378 | Острозькі 379 | Півторак 380 | Підопригора 381 | Павленко 382 | Павлюк 383 | Павлюченко 384 | Пазенко 385 | Паламарчук 386 | Панас 387 | Панасюк 388 | Паньківський 389 | Пархоменко 390 | Пасічник 391 | Пасько 392 | Пашко 393 | Пащенко 394 | Перебийніс 395 | Петренко 396 | Пилипенко 397 | Пилипишин 398 | Пилипчук 399 | Писаренко 400 | Писарчук 401 | Плющ 402 | Покотило 403 | Поліщук 404 | Польовий 405 | Полянський 406 | Пономаренко 407 | Пономарьов 408 | Попадюк 409 | Попенко 410 | Потапенко 411 | Потебенько 412 | Прийма 413 | Приймак 414 | Присяжнюк 415 | Приходько 416 | Продан 417 | Проценко 418 | Проць 419 | Процюк 420 | Пушкар 421 | Різенки 422 | Різун 423 | Радченко 424 | Рибальченко 425 | Римар 426 | Римар 427 | Родзянки 428 | Рожок 429 | Розумовські 430 | Романенко 431 | Романишин 432 | Романчук 433 | Романюк 434 | Рошкевич 435 | Рубан 436 | Рубани 437 | Руденко 438 | Рябовіл 439 | Сімашкевич 440 | Саєнко 441 | Савенко 442 | Савицька 443 | Савка 444 | Савченко 445 | Савчук 446 | Сак 447 | Самборський 448 | Самойлович 449 | Самусь 450 | Свида 451 | Семашко 452 | Семененко 453 | Семенець 454 | Семенина 455 | Семенченко 456 | Семенюк 457 | Семеренко 458 | Сидоренко 459 | Силенко 460 | Симоненко 461 | Симчич 462 | Скаржинські 463 | Скоропадські 464 | Скрипник 465 | Скуратівський 466 | Слободян 467 | Слободянюк 468 | Смик 469 | Смогоржевський 470 | Собчук 471 | Сопронюк 472 | Сорока 473 | Сохань 474 | Стадник 475 | Стельмах 476 | Степаненко 477 | Степура 478 | Стеценко 479 | Стецюк 480 | Стороженки 481 | Струтинський 482 | Сулима 483 | Сулими 484 | Супруненко 485 | Танські 486 | Тараненко 487 | Тарновські 488 | Татаренко 489 | Теплицький 490 | Терещенко 491 | Терещук 492 | Тесленко 493 | Тимошенко 494 | Тимощук 495 | Тимчак 496 | Титаренко 497 | Тишкевичі 498 | Тищенко 499 | Ткач 500 | Ткаченко 501 | Ткачук 502 | Тобілевичі 503 | Толочко 504 | Томенко 505 | Трощинські 506 | Тулуб 507 | Удовенко 508 | Удовиченко 509 | Усенко 510 | Філоненко 511 | Феденко 512 | Федоренко 513 | Федорук 514 | Фещенко 515 | Фоменко 516 | Ханенки 517 | Ханенко 518 | Харитоненки 519 | Харчук 520 | Хміляр 521 | Хмара 522 | Хмельницькі 523 | Холодовський 524 | Хоменко 525 | Царук 526 | Цибуленко 527 | Цюпа 528 | Чабаненко 529 | Чанов 530 | Чередниченко 531 | Чернявський 532 | Чорний 533 | Чорний 534 | Чорновіл 535 | Чуйкевич 536 | Чумак 537 | Чумаченко 538 | Шахрай 539 | Шевченко 540 | Шевчук 541 | Шелест 542 | Шептицькі 543 | Шинкарук 544 | Шкрібляк 545 | Шнайдер 546 | Шовкопляс 547 | Шульга 548 | Шухевич 549 | Щерба 550 | Щербак 551 | Щербань 552 | Юрженко 553 | Юрченко 554 | Юрчишин 555 | Юхименко 556 | Ющенко 557 | Яковенко 558 | Яковина 559 | Янко 560 | Ярема 561 | Яременко 562 | Яремко 563 | Яремчук 564 | Ярмоленко 565 | Ярмолюк 566 | Ярошенко 567 | Яценко 568 | Ященко 569 | Ґалаґан 570 | Євсєєв 571 | Єгоров 572 | Єлізаров 573 | Єрмилов 574 | Єрофєєв 575 | Єршов 576 | Єфімов 577 | Єфремов 578 | Іванов 579 | Ігнатов 580 | Іллюшин 581 | Ільїн 582 | Аєдоницький 583 | Абатуров 584 | Абдулов 585 | Абрамов 586 | Авілов 587 | Авдєєнко 588 | Аврамов 589 | Алексєєв 590 | Александров 591 | Альошин 592 | Анісімов 593 | Анісов 594 | Ананьєв 595 | Андріанов 596 | Андріяшев 597 | Андреєв 598 | Антипов 599 | Антонов 600 | Анциферов 601 | Апухтін 602 | Арбузов 603 | Аржанов 604 | Артем'єв 605 | Архипов 606 | Арцибушев 607 | Астраханцев 608 | Афіногенов 609 | Афанасьєв 610 | Бєлов 611 | Бєлоглазов 612 | Бєлоусов 613 | Бєляєв 614 | Бібиков 615 | Бажанов 616 | Баранов 617 | Барановський 618 | Баришніков 619 | Барсов 620 | Батюшков 621 | Биков 622 | Блохін 623 | Бобров 624 | Богданов 625 | Богомазов 626 | Бойков 627 | Большаков 628 | Борисов 629 | Бочков 630 | Бризгалов 631 | Брусилов 632 | Бутурлін 633 | Бутусов 634 | Варламов 635 | Васильєв 636 | Виноградов 637 | Власов 638 | Внуков 639 | Волков 640 | Воробей 641 | Воробйов 642 | Воронін 643 | Воронцов 644 | Ворошилов 645 | Гаврилов 646 | Герасимов 647 | Гончаров 648 | Горбунов 649 | Горчаков 650 | Горшков 651 | Григор'єв 652 | Громов 653 | Гусєв 654 | Давидов 655 | Данилов 656 | Дараган 657 | Дементьєв 658 | Денисов 659 | Дмитрієв 660 | Добролюбов 661 | Донськой 662 | Дорофєєв 663 | Дубров 664 | Железняков 665 | Жердєв 666 | Жуков 667 | Журавльов 668 | Зінов'єв 669 | Заваров 670 | Загаров 671 | Зайцев 672 | Захаров 673 | Звєрєв 674 | Зеров 675 | Золотухін 676 | Зубов 677 | Казаков 678 | Калінін 679 | Калашников 680 | Карпов 681 | Каштанов 682 | Кисельов 683 | Ковальов 684 | Кожевников 685 | Козлов 686 | Колесников 687 | Кольцов 688 | Комаров 689 | Коновалов 690 | Конюхов 691 | Копилов 692 | Кормильцев 693 | Коробов 694 | Коровкін 695 | Корольов 696 | Котов 697 | Краснов 698 | Крилов 699 | Кримов 700 | Крюков 701 | Кудряшов 702 | Кузнецов 703 | Кузьмін 704 | Кулаков 705 | Куликов 706 | Курков 707 | Курочкін 708 | Лєсков 709 | Лідов 710 | Ладигін 711 | Лазарєв 712 | Лебедєв 713 | Левицький 714 | Лихоносов 715 | Лозина-Лозинський 716 | Лосєв 717 | Львов 718 | Любимов 719 | Мілютін 720 | Макаров 721 | Максимов 722 | Малаков 723 | Мамонов 724 | Манасеїн 725 | Марков 726 | Мартенс 727 | Мартинов 728 | Масленніков 729 | Маслов 730 | Матвєєв 731 | Медведєв 732 | Мельников 733 | Миронов 734 | Михайлов 735 | Моїсєєв 736 | Моргунов 737 | Морков 738 | Морозов 739 | Мухін 740 | Нікітін 741 | Ніколаєв 742 | Нікулін 743 | Набоков 744 | Некрасов 745 | Новиков 746 | Орлов 747 | Осипов 748 | Остроградський 749 | Павлов 750 | Павлушков 751 | Панов 752 | Петров 753 | Пильчиков 754 | Платонов 755 | Плеханов 756 | Польовий 757 | Поляков 758 | Пономарьов 759 | Попов 760 | Поярков 761 | Пригунов 762 | Прошкін 763 | Решетников 764 | Рожков 765 | Романов 766 | Рябов 767 | Саблін 768 | Савін 769 | Сазонов 770 | Сальников 771 | Самойлов 772 | Самсонов 773 | Сбітнєв 774 | Свиридов 775 | Селезньов 776 | Семенов 777 | Сербін 778 | Сергєєв 779 | Сибіряков 780 | Сидоров 781 | Симонов 782 | Синельников 783 | Скобелев 784 | Скоблін 785 | Смирнов 786 | Снєгірьов 787 | Соболєв 788 | Соколов 789 | Солнцев 790 | Соловйов 791 | Сомов 792 | Сорокін 793 | Стєклов 794 | Старков 795 | Степанов 796 | Табаков 797 | Тарасов 798 | Терентьєв 799 | Тимофєєв 800 | Титов 801 | Тихомиров 802 | Тихонов 803 | Тюленєв 804 | Уваров 805 | Усов 806 | Устинов 807 | Філіппов 808 | Філатов 809 | Федоров 810 | Фомін 811 | Фролов 812 | Хілков 813 | Хвостов 814 | Худяков 815 | Цвєтков 816 | Чанов 817 | Чевкін 818 | Черенков 819 | Черепков 820 | Чулков 821 | Шевельов 822 | Шеліхов 823 | Шинін 824 | Ширяєв 825 | Шишов 826 | Шулаков 827 | Щапов 828 | Щасливий 829 | Яковлєв 830 | Яшин -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/girlFatherDB.php: -------------------------------------------------------------------------------- 1 | qFatherName($row['name'], null, 2))!=$row['nameCase']) 16 | { 17 | $t.= "{$row['name']}
"; 18 | $t.= "". 19 | implode('
', $nc->qFatherName($row['name'], null, 2)) 20 | ."

"; 21 | } 22 | 23 | } 24 | echo $t; 25 | ?> 26 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/girlSecondDB.php: -------------------------------------------------------------------------------- 1 | qSecondName($row['name'], null, 2))!=$row['nameCase']) 16 | { 17 | $t.= "{$row['name']}
"; 18 | $t.= "". 19 | implode('
', $nc->qSecondName($row['name'], null, 2)) 20 | ."

"; 21 | } 22 | 23 | } 24 | echo $t; 25 | ?> 26 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/girlfather.txt: -------------------------------------------------------------------------------- 1 | Василівна 2 | Антонівна 3 | Яківна -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/girlname.txt: -------------------------------------------------------------------------------- 1 | Августа 2 | Аврелія 3 | Аврора 4 | Агнія 5 | Агрипина 6 | Ада 7 | Аделаїда 8 | Адріана 9 | Аза 10 | Азалія 11 | Аліна 12 | Аліса 13 | Алла 14 | Альбертина 15 | Альбіна 16 | Альвіна 17 | Анастасія 18 | Ангеліна 19 | Анжела 20 | Антоніна 21 | Анфіса 22 | Аріадна 23 | Арсена 24 | Ася 25 | Афіна 26 | Афродіта 27 | Бажана 28 | Берегиня 29 | Біловида 30 | Біломира 31 | Білослава 32 | Біляна 33 | Благиня 34 | Благовида 35 | Благовіра 36 | Благовіста 37 | Благослава 38 | Богдана 39 | Боговіра 40 | Боговіста 41 | Богодара 42 | Боголіпа 43 | Боголюба 44 | Богосвята 45 | Богумила 46 | Богумира 47 | Богуслава 48 | Божедана 49 | Божедара 50 | Божемила 51 | Божена 52 | Божиця 53 | Болеслава 54 | Борислава 55 | Боронислава 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 | Гаїна 95 | Гатусила 96 | Гарнослава 97 | Голубка 98 | Горигляда 99 | Горислава 100 | Городислава 101 | Гострозора 102 | Градислава 103 | Гранислава 104 | Гремислава 105 | Далібора 106 | Дана 107 | Дарина 108 | Дзвенимира 109 | Дзвенислава 110 | Дзвінка 111 | Діяна 112 | Добринка 113 | Добровіста 114 | Доброгніва 115 | Добролюба 116 | Добромила 117 | Добромира 118 | Доброніга 119 | Доброслава 120 | Долина 121 | Доля 122 | Домаха 123 | Доморада 124 | Дружелюба 125 | Жадана 126 | Ждана 127 | Живосила 128 | Живослава 129 | Житомира 130 | Життєлюба 131 | Забава 132 | Звенигора 133 | Звенислава 134 | Звонимира 135 | Зірка 136 | Злата 137 | Златомира 138 | Златоуста 139 | Золотодана 140 | Зорегляда 141 | Зореслава 142 | Зорина 143 | Зоря 144 | Зоряна 145 | Казка 146 | Калина 147 | Квітка 148 | Колодара 149 | Красава 150 | Красимира 151 | Красновида 152 | Краснолика 153 | Красуня 154 | Купава 155 | Лада 156 | Ладислава 157 | Ладомила 158 | Ладомира 159 | Левина 160 | Лель 161 | Леля 162 | Леся 163 | Либідь 164 | Лілея 165 | Лоліта 166 | Любава 167 | Любаня 168 | Любислава 169 | Любов 170 | Любомила 171 | Любомира 172 | Люборада 173 | Людмила 174 | Людомила 175 | Любослава 176 | Льоля 177 | Мавка 178 | Магадара 179 | Маїна 180 | Маківка 181 | Малуня 182 | Малуша 183 | Мальва 184 | Марута 185 | Мая 186 | Медорада 187 | Мечислава 188 | Милана 189 | Милована 190 | Миловида 191 | Милодара 192 | Милослава 193 | Мирана 194 | Миробога 195 | Миролюба 196 | Мирослава 197 | Млада 198 | Мокрина 199 | Мстислава 200 | Мудролюба 201 | Надія 202 | Найда 203 | Найдена 204 | Наслава 205 | Немира 206 | Нігослава 207 | Незабудка 208 | Огняна 209 | Оримира 210 | Орина 211 | Орислава 212 | Орися 213 | Оріяна 214 | Орогоста 215 | Острозора 216 | Остромира 217 | Осмомисла 218 | Остромова 219 | Пава 220 | Палажка 221 | Палазга 222 | Перелюба 223 | Перемила 224 | Перемисла 225 | Півонія 226 | Позвізда 227 | Полеза 228 | Поляна 229 | Потішана 230 | Предслава 231 | Рада 232 | Радана 233 | Радимира 234 | Радогоста 235 | Радомира 236 | Радослава 237 | Рідна 238 | Рогволода 239 | Рогніда 240 | Родослава 241 | Рожана 242 | Роксолана 243 | Ромашка 244 | Росава 245 | Росина 246 | Ростислава 247 | Ростичара 248 | Ростуня 249 | Рудана 250 | Ружа 251 | Русана 252 | Русудана 253 | Русява 254 | Русявка 255 | Рута 256 | Світана 257 | Світлана 258 | Світовида 259 | Світогора 260 | Світодара 261 | Світозара 262 | Світолика 263 | Світолюба 264 | Світослава 265 | Світояра 266 | Свободана 267 | Святогора 268 | Святолюба 269 | Святослава 270 | Силата 271 | Силолюба 272 | Силослава 273 | Синезора 274 | Синьоока 275 | Сіверина 276 | Слава 277 | Славина 278 | Славолюба 279 | Славомила 280 | Сміяна 281 | Сніжана 282 | Сніжинка 283 | Собіслава 284 | Соловія 285 | Сологуба 286 | Сонцевида 287 | Сонцедара 288 | Сонцелика 289 | Сонцеслава 290 | Ссанимира 291 | Станислава 292 | Судимира 293 | Судислава 294 | Татолюба 295 | Твердислава 296 | Твердогоста 297 | Творимира 298 | Творислава 299 | Толигніва 300 | Тонкостана 301 | Трояна 302 | Хвала 303 | Хвалибого 304 | Хвалимира 305 | Хвалина 306 | Хорошка 307 | Хорошуня 308 | Хотимра 309 | Хотяна 310 | Хранимира 311 | Худана 312 | Цвітана 313 | Чайка 314 | Чарівна 315 | Чарівниця 316 | Чаруна 317 | Чеслава 318 | Ява 319 | Яворина 320 | Ялина 321 | Ярина 322 | Яромила 323 | Яромира 324 | Ярослава 325 | Ясна 326 | Ясновида 327 | Ясногора 328 | Яснолика 329 | Яснослава 330 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/girlsecond.txt: -------------------------------------------------------------------------------- 1 | Єрмоленко 2 | Єсипенко 3 | Іванів 4 | Іваненко 5 | Іванченко 6 | Іванчук 7 | Іванюк 8 | Івахненко 9 | Івашко 10 | Іващенко 11 | Івченко 12 | Іллєнко 13 | Іловайські 14 | Ільницька 15 | Ільченко 16 | Іщенко 17 | Абраменко 18 | Абрамчук 19 | Адамчук 20 | Акуленко 21 | Алексєєнко 22 | Алексійчук 23 | Андрієнко 24 | Андрійчук 25 | Андрейко 26 | Андрусів 27 | Андрушків 28 | Андрущенко 29 | Анищенко 30 | Антонюк 31 | Арсенич 32 | Артюх 33 | Атаманчук 34 | Біла 35 | Білас 36 | Біла 37 | Білодід 38 | Білоус 39 | Баб'юк 40 | Бабійчук 41 | Бабак 42 | Бабчук 43 | Багмут 44 | Багрій 45 | Бадлак 46 | Бажан 47 | Балтача 48 | Бандура 49 | Баран 50 | Баранець 51 | Барановська 52 | Баранюк 53 | Батюк 54 | Бачинська 55 | Бебешко 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 | Верхола 95 | Винокур 96 | Висоцькі 97 | Вишневецькі 98 | Влох 99 | Вобла 100 | Вовк 101 | Возняк 102 | Войнаровські 103 | Волох 104 | Волошин 105 | Волощук 106 | Вороновська 107 | Гаврилів 108 | Гавриленко 109 | Гаврилюк 110 | Галенковські 111 | Гальченко 112 | Гамалія 113 | Ганицька 114 | Гарань 115 | Гармаш 116 | Гасай 117 | Гасюк 118 | Герасименко 119 | Геращенко 120 | Герцик 121 | Герцики 122 | Гладченко 123 | Глоба 124 | Гнідичі 125 | Гнатюк 126 | Гоголі 127 | Гоголь 128 | Годунок 129 | Головата 130 | Головко 131 | Голуб 132 | Голубнича 133 | Гольшанські 134 | Гонта 135 | Гончар 136 | Гончаренко 137 | Гончаров 138 | Горбаль 139 | Гордієнко 140 | Гординські 141 | Гошовські 142 | Гошовська 143 | Грінченко 144 | Грабович 145 | Грабовська 146 | Григоренко 147 | Григорович 148 | Григорович-Барська 149 | Григорчук 150 | Грицак 151 | Гриценко 152 | Гришко 153 | Громики 154 | Гудзій 155 | Гудзь 156 | Гуменюк 157 | Гунько 158 | Діденко 159 | Даниленко 160 | Даньків 161 | Данькевич 162 | Дараган 163 | Дашкевич 164 | Дем'яненко 165 | Дем'янчук 166 | Денисенко 167 | Джус 168 | Дзюба 169 | Дикань 170 | Дмитерко 171 | Довженко 172 | Домонтовичі 173 | Дорош 174 | Дорошенко 175 | Доценко 176 | Дочинець 177 | Драгоманови 178 | Дудко 179 | Дунін-Борковські 180 | Дяків 181 | Дяченко 182 | Ейбоженко 183 | Жайворон 184 | Жаліло 185 | Ждановичі 186 | Жежерін 187 | Желєзняк 188 | Железняк 189 | Жилко 190 | Жирко 191 | Жук 192 | Жупанська 193 | Жураківські 194 | Зінов'єв 195 | Заєць 196 | Забашта 197 | Заболотна 198 | Завальнюк 199 | Закревські 200 | Закусило 201 | Залізняк 202 | Заруба 203 | Засядько 204 | Захаренко 205 | Захарчук 206 | Заяць 207 | Заячківська 208 | Збаразькі 209 | Зленко 210 | Значко-Яворські 211 | Золотаренко 212 | Кабачок 213 | Каганець 214 | Калашники 215 | Калинович 216 | Кандиби 217 | Карашевичі 218 | Кармалюк 219 | Карпенко 220 | Кириленко 221 | Кисилі 222 | Китаста 223 | Кицай 224 | Клименко 225 | Климчук 226 | Кмета 227 | Книш 228 | Ковалів 229 | Коваленко 230 | Коваль 231 | Ковальчик 232 | Ковальчук 233 | Кованько 234 | Ковтун 235 | Козаченко 236 | Козачинська 237 | Козачок 238 | Козубенко 239 | Колесник 240 | Колодій 241 | Колодна 242 | Коломієць 243 | Комар 244 | Кондратюк 245 | Кониські 246 | Корецька 247 | Корж 248 | Корнійчук 249 | Коробка 250 | Королюк 251 | Короткевич 252 | Корпанюк 253 | Корчак 254 | Корчинська 255 | Косенко 256 | Костенко 257 | Коструба 258 | Костюк 259 | Котляр 260 | Котляревська 261 | Кравців 262 | Кравченко 263 | Кравчук 264 | Красовська 265 | Криворучко 266 | Крикуненко 267 | Крупські 268 | Кузьмінська 269 | Кулиняк 270 | Кульчицька 271 | Купчинська 272 | Курцевичі 273 | Кухаренко 274 | Куц 275 | Куценко 276 | Кучер 277 | Кучеренко 278 | Кушнір 279 | Лаба 280 | Лаврін 281 | Лаврик 282 | Лавриненко 283 | Лазаревські 284 | Лазарчук 285 | Лазорко 286 | Лашкевичі 287 | Левицька 288 | Левковські 289 | Левченко 290 | Леонтовичі 291 | Лесів 292 | Лесевичі 293 | Лисенко 294 | Литвин 295 | Литвиненко 296 | Литвинов 297 | Литовченко 298 | Лозина-Лозинська 299 | Лопатинська 300 | Лук'яненко 301 | Лукашевичі 302 | Лукомська 303 | Луценко 304 | Людкевич 305 | Ляшенко 306 | Ляшенко 307 | Мірошниченко 308 | Мірчук 309 | Міщенко 310 | Мазаракі 311 | Мазепи 312 | Мазур 313 | Макаренко 314 | Максименко 315 | Маланчук 316 | Малаховські 317 | Малишко 318 | Малкович 319 | Мамчур 320 | Маркевич 321 | Маркевичі 322 | Мартиненко 323 | Мартоси 324 | Марунчак 325 | Марценюк 326 | Марченко 327 | Марчук 328 | Масоха 329 | Матвієнко 330 | Матюшенко 331 | Маценко 332 | Мацюк 333 | Мельник 334 | Мельниченко 335 | Мельничук 336 | Микитенко 337 | Микитин 338 | Милорадовичі 339 | Мирон 340 | Михайленко 341 | Михайличенко 342 | Михайлюк 343 | Мицик 344 | Мовчан 345 | Могили 346 | Модзалевські 347 | Моргун 348 | Мороз 349 | Мосендзи 350 | Москаленко 351 | Москаль 352 | Мошак 353 | Муратова 354 | Мусієнко 355 | Назаренко 356 | Наливайко 357 | Нащинські 358 | Негребецька 359 | Непорожній 360 | Нестеренко 361 | Нечай 362 | Нечипоренко 363 | Оберемченко 364 | Овчаренко 365 | Ограновичі 366 | Олійник 367 | Олексієнко 368 | Омельченко 369 | Омельчук 370 | Онищенко 371 | Онопенко 372 | Опанасенко 373 | Орлики 374 | Осадчук 375 | Осика 376 | Остапенко 377 | Остроградська 378 | Острозькі 379 | Півторак 380 | Підопригора 381 | Павленко 382 | Павлюк 383 | Павлюченко 384 | Пазенко 385 | Паламарчук 386 | Панас 387 | Панасюк 388 | Паньківська 389 | Пархоменко 390 | Пасічник 391 | Пасько 392 | Пашко 393 | Пащенко 394 | Перебийніс 395 | Петренко 396 | Пилипенко 397 | Пилипишин 398 | Пилипчук 399 | Писаренко 400 | Писарчук 401 | Плющ 402 | Покотило 403 | Поліщук 404 | Польова 405 | Полянська 406 | Пономаренко 407 | Пономарьов 408 | Попадюк 409 | Попенко 410 | Потапенко 411 | Потебенько 412 | Прийма 413 | Приймак 414 | Присяжнюк 415 | Приходько 416 | Продан 417 | Проценко 418 | Проць 419 | Процюк 420 | Пушкар 421 | Різенки 422 | Різун 423 | Радченко 424 | Рибальченко 425 | Римар 426 | Римар 427 | Родзянки 428 | Рожок 429 | Розумовські 430 | Романенко 431 | Романишин 432 | Романчук 433 | Романюк 434 | Рошкевич 435 | Рубан 436 | Рубани 437 | Руденко 438 | Рябовіл 439 | Сімашкевич 440 | Саєнко 441 | Савенко 442 | Савицька 443 | Савка 444 | Савченко 445 | Савчук 446 | Сак 447 | Самборська 448 | Самойлович 449 | Самусь 450 | Свида 451 | Семашко 452 | Семененко 453 | Семенець 454 | Семенина 455 | Семенченко 456 | Семенюк 457 | Семеренко 458 | Сидоренко 459 | Силенко 460 | Симоненко 461 | Симчич 462 | Скаржинські 463 | Скоропадські 464 | Скрипник 465 | Скуратівська 466 | Слободян 467 | Слободянюк 468 | Смик 469 | Смогоржевська 470 | Собчук 471 | Сопронюк 472 | Сорока 473 | Сохань 474 | Стадник 475 | Стельмах 476 | Степаненко 477 | Степура 478 | Стеценко 479 | Стецюк 480 | Стороженки 481 | Струтинська 482 | Сулима 483 | Сулими 484 | Супруненко 485 | Танські 486 | Тараненко 487 | Тарновські 488 | Татаренко 489 | Теплицька 490 | Терещенко 491 | Терещук 492 | Тесленко 493 | Тимошенко 494 | Тимощук 495 | Тимчак 496 | Титаренко 497 | Тишкевичі 498 | Тищенко 499 | Ткач 500 | Ткаченко 501 | Ткачук 502 | Тобілевичі 503 | Толочко 504 | Томенко 505 | Трощинські 506 | Тулуб 507 | Удовенко 508 | Удовиченко 509 | Усенко 510 | Філоненко 511 | Феденко 512 | Федоренко 513 | Федорук 514 | Фещенко 515 | Фоменко 516 | Ханенки 517 | Ханенко 518 | Харитоненки 519 | Харчук 520 | Хміляр 521 | Хмара 522 | Хмельницькі 523 | Холодовська 524 | Хоменко 525 | Царук 526 | Цибуленко 527 | Цюпа 528 | Чабаненко 529 | Чанов 530 | Чередниченко 531 | Чернявська 532 | Чорна 533 | Чорна 534 | Чорновіл 535 | Чуйкевич 536 | Чумак 537 | Чумаченко 538 | Шахрай 539 | Шевченко 540 | Шевчук 541 | Шелест 542 | Шептицькі 543 | Шинкарук 544 | Шкрібляк 545 | Шнайдер 546 | Шовкопляс 547 | Шульга 548 | Шухевич 549 | Щерба 550 | Щербак 551 | Щербань 552 | Юрженко 553 | Юрченко 554 | Юрчишин 555 | Юхименко 556 | Ющенко 557 | Яковенко 558 | Яковина 559 | Янко 560 | Ярема 561 | Яременко 562 | Яремко 563 | Яремчук 564 | Ярмоленко 565 | Ярмолюк 566 | Ярошенко 567 | Яценко 568 | Ященко 569 | Ґалаґан 570 | Євсєєва 571 | Єгорова 572 | Єлізарова 573 | Єрмилова 574 | Єрофєєва 575 | Єршова 576 | Єфімова 577 | Єфремова 578 | Іванова 579 | Ігнатова 580 | Іллюшина 581 | Ільїна 582 | Аєдоницька 583 | Абатурова 584 | Абдулова 585 | Абрамова 586 | Авілова 587 | Авдєєнко 588 | Аврамова 589 | Алексєєва 590 | Александрова 591 | Альошина 592 | Анісімова 593 | Анісова 594 | Ананьєва 595 | Андріанова 596 | Андріяшева 597 | Андреєва 598 | Антипова 599 | Антонова 600 | Анциферова 601 | Апухтіна 602 | Арбузова 603 | Аржанова 604 | Артем'єва 605 | Архипова 606 | Арцибушева 607 | Астраханцева 608 | Афіногенова 609 | Афанасьєва 610 | Бєлова 611 | Бєлоглазова 612 | Бєлоусова 613 | Бєляєва 614 | Бібикова 615 | Бажанова 616 | Баранова 617 | Барановська 618 | Баришнікова 619 | Барсова 620 | Батюшкова 621 | Бикова 622 | Блохіна 623 | Боброва 624 | Богданова 625 | Богомазова 626 | Бойкова 627 | Большакова 628 | Борисова 629 | Бочкова 630 | Бризгалова 631 | Брусилова 632 | Бутурліна 633 | Бутусова 634 | Варламова 635 | Васильєва 636 | Виноградова 637 | Власова 638 | Внукова 639 | Волкова 640 | Воробей 641 | Воробйова 642 | Вороніна 643 | Воронцова 644 | Ворошилова 645 | Гаврилова 646 | Герасимова 647 | Гончарова 648 | Горбунова 649 | Горчакова 650 | Горшкова 651 | Григор'єва 652 | Громова 653 | Гусєва 654 | Давидова 655 | Данилова 656 | Дарагана 657 | Дементьєва 658 | Денисова 659 | Дмитрієва 660 | Добролюбова 661 | Донськая 662 | Дорофєєва 663 | Дуброва 664 | Железнякова 665 | Жердєва 666 | Жукова 667 | Журавльова 668 | Зінов'єва 669 | Заварова 670 | Загарова 671 | Зайцева 672 | Захарова 673 | Звєрєва 674 | Зерова 675 | Золотухіна 676 | Зубова 677 | Казакова 678 | Калініна 679 | Калашникова 680 | Карпова 681 | Каштанова 682 | Кисельова 683 | Ковальова 684 | Кожевникова 685 | Козлова 686 | Колесникова 687 | Кольцова 688 | Комарова 689 | Коновалова 690 | Конюхова 691 | Копилова 692 | Кормильцева 693 | Коробова 694 | Коровкіна 695 | Корольова 696 | Котова 697 | Краснова 698 | Крилова 699 | Кримова 700 | Крюкова 701 | Кудряшова 702 | Кузнецова 703 | Кузьміна 704 | Кулакова 705 | Куликова 706 | Куркова 707 | Курочкіна 708 | Лєскова 709 | Лідова 710 | Ладигіна 711 | Лазарєва 712 | Лебедєва 713 | Левицька 714 | Лихоносова 715 | Лозина-Лозинська 716 | Лосєва 717 | Львова 718 | Любимова 719 | Мілютіна 720 | Макарова 721 | Максимова 722 | Малакова 723 | Мамонова 724 | Манасеїна 725 | Маркова 726 | Мартенс 727 | Мартинова 728 | Масленнікова 729 | Маслова 730 | Матвєєва 731 | Медведєва 732 | Мельникова 733 | Миронова 734 | Михайлова 735 | Моїсєєва 736 | Моргунова 737 | Моркова 738 | Морозова 739 | Мухіна 740 | Нікітіна 741 | Ніколаєва 742 | Нікуліна 743 | Набокова 744 | Некрасова 745 | Новикова 746 | Орлова 747 | Осипова 748 | Остроградська 749 | Павлова 750 | Павлушкова 751 | Панова 752 | Петрова 753 | Пильчикова 754 | Платонова 755 | Плеханова 756 | Польова 757 | Полякова 758 | Пономарьова 759 | Попова 760 | Пояркова 761 | Пригунова 762 | Прошкіна 763 | Решетникова 764 | Рожкова 765 | Романова 766 | Рябова 767 | Сабліна 768 | Савіна 769 | Сазонова 770 | Сальникова 771 | Самойлова 772 | Самсонова 773 | Сбітнєва 774 | Свиридова 775 | Селезньова 776 | Семенова 777 | Сербіна 778 | Сергєєва 779 | Сибірякова 780 | Сидорова 781 | Симонова 782 | Синельникова 783 | Скобелева 784 | Скобліна 785 | Смирнова 786 | Снєгірьова 787 | Соболєва 788 | Соколова 789 | Солнцева 790 | Соловйова 791 | Сомова 792 | Сорокіна 793 | Стєклова 794 | Старкова 795 | Степанова 796 | Табакова 797 | Тарасова 798 | Терентьєва 799 | Тимофєєва 800 | Титова 801 | Тихомирова 802 | Тихонова 803 | Тюленєва 804 | Уварова 805 | Усова 806 | Устинова 807 | Філіппова 808 | Філатова 809 | Федорова 810 | Фоміна 811 | Фролова 812 | Хілкова 813 | Хвостова 814 | Худякова 815 | Цвєткова 816 | Чанова 817 | Чевкіна 818 | Черенкова 819 | Черепкова 820 | Чулкова 821 | Шевельова 822 | Шеліхова 823 | Шиніна 824 | Ширяєва 825 | Шишова 826 | Шулакова 827 | Щапова 828 | Щаслива 829 | Яковлєва 830 | Яшина -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/loadDB.php: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/manFatherDB.php: -------------------------------------------------------------------------------- 1 | qFatherName($row['name'], null, 1))!=$row['nameCase']) 16 | { 17 | $t.= "{$row['name']}
"; 18 | $t.= "". 19 | implode('
', $nc->qFatherName($row['name'], null, 1)) 20 | ."

"; 21 | } 22 | 23 | } 24 | echo $t; 25 | ?> 26 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/manSecondDB.php: -------------------------------------------------------------------------------- 1 | qSecondName($row['name'], null, 1))!=$row['nameCase']) 16 | { 17 | $t.= "{$row['name']}
"; 18 | $t.= "". 19 | implode('
', $nc->qSecondName($row['name'], null, 1)) 20 | ."

"; 21 | } 22 | 23 | } 24 | echo $t; 25 | ?> 26 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/savegirls.php: -------------------------------------------------------------------------------- 1 | qSecondName($row['name'], null, 2))!=$row['nameCase']) 31 | // { 32 | // $t.= "{$row['name']}
"; 33 | // $t.= "". 34 | // implode('
', $nc->qSecondName($row['name'], null, 2)) 35 | // ."

"; 36 | // } 37 | $LastSymbol = mb_substr($row['name'], -1, 1, 'utf-8'); 38 | $TwoLast = mb_substr($row['name'], -2, 2, 'utf-8'); 39 | if($TwoLast=='ко' or in($LastSymbol, 'бвгджзйклмнпрстфхцчшщіь')) 40 | { 41 | $res=implode('#', array($row['name'],$row['name'],$row['name'],$row['name'],$row['name'],$row['name'],$row['name'])); 42 | mysql_query("UPDATE {$tablename} SET nameCase='{$res}' WHERE id={$row['id']}"); 43 | } 44 | } 45 | //$t=''; 46 | //$row = mysql_fetch_array($all); 47 | //$method = 'qFirstName'; 48 | //if($val=='father') 49 | //{ 50 | // $method = 'qFatherName'; 51 | //} 52 | //if($val=='second') 53 | //{ 54 | // $method = 'qSecondName'; 55 | //} 56 | //$res = implode('#', $nc->$method($row['name'], null, ($type=='girl' ? 2 : 1))); 57 | //mysql_query("UPDATE {$tablename} SET nameCase='{$res}' WHERE id={$id}"); 58 | ?> 59 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/saveme.php: -------------------------------------------------------------------------------- 1 | $method($row['name'], null, ($type=='girl' ? 2 : 1))); 27 | mysql_query("UPDATE {$tablename} SET nameCase='{$res}' WHERE id={$id}"); 28 | ?> 29 | -------------------------------------------------------------------------------- /Tests/TestGenerator/uagenerator/testFromDB.php: -------------------------------------------------------------------------------- 1 | qFirstName($row['name'], null, 2))!=$row['nameCase']) 16 | { 17 | $t.= "{$row['name']}
"; 18 | $t.= "". 19 | implode('
', $nc->qFirstName($row['name'], null, 2)) 20 | ."

"; 21 | } 22 | 23 | } 24 | echo $t; 25 | ?> 26 | -------------------------------------------------------------------------------- /Tests/debug.php: -------------------------------------------------------------------------------- 1 | q("Швець Антон")); 8 | //var_dump($ob->getWordsArray()); 9 | 10 | print_r($ob->fullReset()->setFullName("Афросинин", "Павел", "Илларионович")->getFormatted(null, "N F S")); 11 | 12 | //echo $ob->getFullNameFormat("Мая"); 13 | //echo $ob->genderDetect("Іванцов Микола Микита Андрій Петро Михайлович Миколайович Антонівна"); 14 | //echo $ob->getSecondNameRule(); 15 | ?> 16 | -------------------------------------------------------------------------------- /Tutorial/lesson1.php: -------------------------------------------------------------------------------- 1 | q("Андрей Николаевич")); 17 | 18 | /** 19 | * Подключаем другой язык 20 | */ 21 | require '../Library/NCL.NameCase.ua.php'; 22 | /** 23 | * Создаем объект класса. 24 | * Теперь библиотека готова к работе 25 | */ 26 | $nc = new NCLNameCaseUa(); 27 | /** 28 | * Производим склонения и выводим результат на экран 29 | */ 30 | print_r($nc->q("Андрій Миколайович")); 31 | ?> -------------------------------------------------------------------------------- /Tutorial/lesson2.php: -------------------------------------------------------------------------------- 1 | q('Андрей Николаевич', NCL::$RODITLN)."\n"; 10 | 11 | /** 12 | * Указываем падеж украинской константой 13 | */ 14 | echo $nc->q('Андрей Николаевич', NCL::$UaRodovyi)."\n"; 15 | 16 | /** 17 | * Явно не указываем пол 18 | */ 19 | print_r($nc->q('Иващук')); 20 | 21 | /** 22 | * Указываем мужской пол 23 | */ 24 | print_r($nc->q('Иващук', null, NCL::$MAN)); 25 | ?> 26 | -------------------------------------------------------------------------------- /Tutorial/lesson3.php: -------------------------------------------------------------------------------- 1 | genderDetect($person); 19 | 20 | /** 21 | * Выводим приветствие 22 | */ 23 | echo "Мы хотим предложить " . $nc->q($person, NCL::$DATELN) . " наши новые товары из категорий: 24 | "; 42 | ?> 43 | -------------------------------------------------------------------------------- /Tutorial/lesson4.php: -------------------------------------------------------------------------------- 1 | q("АНДРЕЙ НИКОЛАЕВИЧ", NCL::$RODITLN)."\n"; 7 | echo $nc->q("королёв Никита ПЕТРОВИЧ", NCL::$RODITLN)."\n"; 8 | echo $nc->q("ПороСЁнОК ПёТР", NCL::$RODITLN)."\n"; 9 | ?> 10 | -------------------------------------------------------------------------------- /Tutorial/lesson5.1.php: -------------------------------------------------------------------------------- 1 | qFullName("Иванов", "Фёдор", "Ильич", null, NCL::$TVORITELN)."\n"; //Ивановым Фёдором Ильичом 10 | 11 | /** 12 | * В формате не обязательно использовать все слова 13 | */ 14 | echo $nc->qFullName("Иванов", "Фёдор", "Ильич", NCL::$MAN, NCL::$TVORITELN, "N F")."\n"; //Фёдором Ильичом 15 | 16 | /** 17 | * Можно указать формат и не указывать пол человека 18 | */ 19 | echo $nc->qFullName("Иванов", "Фёдор", "Ильич", null, NCL::$TVORITELN, "S N")."\n"; //Ивановым Фёдором 20 | 21 | /** 22 | * Можно указать все параметры 23 | */ 24 | echo $nc->qFullName("Иванов", "Фёдор", "Ильич", NCL::$MAN, NCL::$TVORITELN, "S N F")."\n"; //Ивановым Фёдором Ильичом 25 | 26 | /** 27 | * В строке-формате могут присутствовать любые символы 28 | */ 29 | echo $nc->qFullName("Иванов", "Фёдор", "Ильич", NCL::$MAN, NCL::$TVORITELN, "Фамилия: S, Имя: N, Отчество: F")."\n"; //Фамилия: Ивановым, Имя: Фёдором, Отчество: Ильичом 30 | ?> 31 | -------------------------------------------------------------------------------- /Tutorial/lesson5.2.php: -------------------------------------------------------------------------------- 1 | qFatherName("Николаевич", NCL::$DATELN)."\n"; 10 | 11 | /** 12 | * Если не указать падеж, получим массив со всеми падежами. 13 | */ 14 | print_r($nc->qFirstName("Андрей")); 15 | 16 | /** 17 | * В ситувациях, когда не возможно определить пол, его полезно указать. 18 | */ 19 | echo $nc->qSecondName("Касюк", NCL::$DATELN, NCL::$MAN)."\n"; 20 | ?> 21 | -------------------------------------------------------------------------------- /Tutorial/lesson5.3.php: -------------------------------------------------------------------------------- 1 | fullReset()->setFirstName("Андрей")->setFatherName("Николаевич")->getFormatted(NCL::$RODITLN, "N F")."\n"; 10 | 11 | /** 12 | * Заканчиваются методы вызовом метода getFormatted(), который возвращает искомую строку 13 | */ 14 | print_r($nc->fullReset()->setFullName("Афросинин", "Павел", "Илларионович")->getFormatted(null, "N F S")); 15 | 16 | /** 17 | * Начинаются все цепочки с вызова метода fullReset(); 18 | */ 19 | echo $nc->fullReset()->setSecondName("Романчук")->setGender(NCL::$MAN)->getFormatted(NCL::$DATELN); 20 | ?> 21 | -------------------------------------------------------------------------------- /Tutorial/lesson6.php: -------------------------------------------------------------------------------- 1 | getFullNameFormat($person).' - '.$person."\n"; 15 | } 16 | /** 17 | * Результат выполнения: 18 | * N F - Андрей Николаевич 19 | * N - Ирина 20 | * S N F - Ефиопский Аркадий Василевич 21 | * N F - Мария Николаевна 22 | * S N - Розумовский Илья 23 | */ 24 | ?> 25 | -------------------------------------------------------------------------------- /Tutorial/lesson7.php: -------------------------------------------------------------------------------- 1 | q($name); 12 | 13 | /** 14 | * Получаем массив объектов типа NCLNameCaseWord 15 | */ 16 | $words = $nc->getWordsArray(); 17 | 18 | 19 | foreach ($words as $word) 20 | { 21 | /** 22 | * Выводим тип каждого слова на экран 23 | */ 24 | echo $word->getNamePart().' '.$word->getNameCase(NCL::$TVORITELN)."\n"; 25 | } 26 | 27 | /** 28 | * Получаем: 29 | * S Ефиопским 30 | * N Аркадием 31 | * F Василевичем 32 | */ 33 | ?> 34 | --------------------------------------------------------------------------------