123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801 |
- <?php
- namespace morphos\test\Russian;
- use morphos\Gender;
- use morphos\NamesInflection;
- use morphos\Russian\Cases;
- use morphos\Russian\FirstNamesInflection;
- use PHPUnit\Framework\TestCase;
- class FirstNamesInflecionTest extends TestCase
- {
- /**
- * @dataProvider allMenNamesProvider
- */
- public function testMutableMen($name)
- {
- $this->assertTrue(FirstNamesInflection::isMutable($name, FirstNamesInflection::MALE));
- }
- /**
- * @dataProvider allWomenNamesProvider
- */
- public function testMutableWomen($name)
- {
- $this->assertTrue(FirstNamesInflection::isMutable($name, FirstNamesInflection::FEMALE));
- }
- public function allMenNamesProvider()
- {
- return [
- ['Август'],
- ['Авдей'],
- ['Аверкий'],
- ['Аверьян'],
- ['Авксентий'],
- ['Автоном'],
- ['Агап'],
- ['Агафон'],
- ['Аггей'],
- ['Адам'],
- ['Адриан и Андриян'],
- ['Азарий'],
- ['Аким'],
- ['Александр'],
- ['Алексей'],
- ['Амвросий'],
- ['Амос'],
- ['Ананий'],
- ['Анатолий'],
- ['Андрей'],
- ['Андрон'],
- ['Андроник'],
- ['Аникей'],
- ['Аникита'],
- ['Анисим и Онисим'],
- ['Антип'],
- ['Антонин'],
- ['Аполлинарий'],
- ['Аполлон'],
- ['Арефий'],
- ['Аристарх'],
- ['Аркадий'],
- ['Арсений'],
- ['Артемий'],
- ['Артем'],
- ['Архип'],
- ['Аскольд'],
- ['Афанасий'],
- ['Афиноген'],
- ['Бажен'],
- ['Богдан'],
- ['Болеслав'],
- ['Борис'],
- ['Борислав'],
- ['Боян'],
- ['Бронислав'],
- ['Будимир'],
- ['Вадим'],
- ['Валентин'],
- ['Валерий'],
- ['Валерьян'],
- ['Варлаам'],
- ['Варфоломей'],
- ['Василий'],
- ['Вацлав'],
- ['Велимир'],
- ['Венедикт'],
- ['Вениамин'],
- ['Викентий'],
- ['Виктор'],
- ['Викторин'],
- ['Виссарион'],
- ['Виталий'],
- ['Владилен'],
- ['Владлен'],
- ['Владимир'],
- ['Владислав'],
- ['Влас'],
- ['Всеволод'],
- ['Всемил'],
- ['Всеслав'],
- ['Вышеслав'],
- ['Вячеслав'],
- ['Гаврила и Гавриил'],
- ['Галактион'],
- ['Гедеон'],
- ['Геннадий'],
- ['Георгий'],
- ['Герасим'],
- ['Герман'],
- ['Глеб'],
- ['Гордей'],
- ['Гостомысл'],
- ['Гремислав'],
- ['Григорий'],
- ['Гурий'],
- ['Давыд и Давид'],
- ['Данила и Даниил'],
- ['Дементий'],
- ['Демид'],
- ['Демьян'],
- ['Денис'],
- ['Дмитрий'],
- ['Добромысл'],
- ['Доброслав'],
- ['Дорофей'],
- ['Евгений'],
- ['Евграф'],
- ['Евдоким'],
- ['Евлампий'],
- ['Евсей'],
- ['Евстафий'],
- ['Евстигней'],
- ['Егор'],
- ['Елизар'],
- ['Елисей'],
- ['Емельян'],
- ['Епифан'],
- ['Еремей'],
- ['Ермил'],
- ['Ермолай'],
- ['Ерофей'],
- ['Ефим'],
- ['Ефрем'],
- ['Захар'],
- ['Зиновий'],
- ['Иван'],
- ['Игнатий'],
- ['Игорь'],
- ['Измаил'],
- ['Изот'],
- ['Изяслав'],
- ['Иларион'],
- ['Илья'],
- ['Иннокентий'],
- ['Иосиф'],
- ['Осип'],
- ['Ипат'],
- ['Ипатий'],
- ['Ипполит'],
- ['Ираклий'],
- ['Исай'],
- ['Исидор'],
- ['Казимир'],
- ['Каллистрат'],
- ['Капитон'],
- ['Карл'],
- ['Карп'],
- ['Касьян'],
- ['Ким'],
- ['Кир'],
- ['Кирилл'],
- ['Клавдий'],
- ['Климент'],
- ['Клементий'],
- ['Клим'],
- ['Кондрат'],
- ['Кондратий'],
- ['Конон'],
- ['Константин'],
- ['Корнил'],
- ['Корней'],
- ['Корнилий'],
- ['Кузьма'],
- ['Куприян'],
- ['Лавр'],
- ['Лаврентий'],
- ['Ладимир'],
- ['Ладислав'],
- ['Лазарь'],
- ['Лев'],
- ['Леон'],
- ['Леонид'],
- ['Леонтий'],
- ['Лонгин'],
- ['Лука'],
- ['Лукьян'],
- ['Лучезар'],
- ['Любим'],
- ['Любомир'],
- ['Любосмысл'],
- ['Макар'],
- ['Максим'],
- ['Максимильян'],
- ['Мариан'],
- ['Марк'],
- ['Мартын'],
- ['Мартьян'],
- ['Матвей'],
- ['Мефодий'],
- ['Мечислав'],
- ['Милан'],
- ['Милен'],
- ['Милий'],
- ['Милован'], /*['Мина'],*/ ['Мир'],
- ['Мирон'],
- ['Мирослав'],
- ['Митофан'],
- ['Михаил'],
- ['Михей'],
- ['Модест'],
- ['Моисей'],
- ['Мокей'],
- ['Мстислав'],
- ['Назар'],
- ['Наркис'],
- ['Натан'],
- ['Наум'],
- ['Нестор'],
- ['Никандр'],
- ['Никанор'],
- ['Никита'],
- ['Никифор'],
- ['Никодим'],
- ['Николай'],
- ['Никон'],
- ['Нифонт'],
- ['Олег'],
- ['Олимпий'],
- ['Онуфрий'],
- ['Орест'],
- ['Остап'],
- ['Остромир'],
- ['Павел'],
- ['Панкратий'],
- ['Панкрат'],
- ['Пантелеймон'],
- ['Панфил'],
- ['Парамон'],
- ['Парфен'],
- ['Пахом'],
- ['Петр'],
- ['Пимен'],
- ['Платон'],
- ['Поликарп'],
- ['Порфирий'],
- ['Потап'],
- ['Пров'],
- ['Прокл'],
- ['Прокофий'],
- ['Прохор'],
- ['Радим'],
- ['Радислав'],
- ['Радован'],
- ['Ратибор'],
- ['Ратмир'],
- ['Родион'],
- ['Роман'],
- ['Ростислав'],
- ['Рубен'],
- ['Руслан'],
- ['Рюрик'],
- ['Савва'],
- ['Савватий'],
- ['Савелий'],
- ['Самсон'],
- ['Самуил'],
- ['Светозар'],
- ['Святополк'],
- ['Святослав'],
- ['Севастьян'],
- ['Селиван'],
- ['Селиверст'],
- ['Семен'],
- ['Серафим'],
- ['Сергей'],
- ['Сигизмунд'],
- ['Сидор'],
- ['Силантий'],
- ['Сильвестр'],
- ['Симон'],
- ['Сократ'],
- ['Соломон'],
- ['Софон'],
- ['Софрон'],
- ['Спартак'],
- ['Спиридон'],
- ['Станимир'],
- ['Станислав'],
- ['Степан'],
- ['Стоян'],
- ['Тарас'],
- ['Твердислав'],
- ['Творимир'],
- ['Терентий'],
- ['Тимофей'],
- ['Тимур'],
- ['Тит'],
- ['Тихон'],
- ['Трифон'],
- ['Трофим'],
- ['Ульян'],
- ['Устин'],
- ['Фадей'],
- ['Федор'],
- ['Федосий'],
- ['Федот'],
- ['Феликс'],
- ['Феоктист'],
- ['Феофан'],
- ['Ферапонт'],
- ['Филарет'],
- ['Филимон'],
- ['Филипп'],
- ['Фирс'],
- ['Флорентин'],
- ['Фока'],
- ['Фома'],
- ['Фортунат'],
- ['Фотий'],
- ['Фрол'],
- ['Харитон'],
- ['Харлампий'],
- ['Христофор'],
- ['Чеслав'],
- ['Эдуард'],
- ['Эммануил'],
- ['Эраст'],
- ['Эрнест'],
- ['Эрнст'],
- ['Ювеналий'],
- ['Юлиан'],
- ['Юлий'],
- ['Юрий'],
- ['Яков'],
- ['Ян'],
- ['Якуб'],
- ['Януарий'],
- ['Ярополк'],
- ['Ярослав'],
- ];
- }
- public function allWomenNamesProvider()
- {
- return [
- ['Августа'],
- ['Агата'],
- ['Агафья'],
- ['Агнесса'],
- ['Агния'],
- ['Аграфена'],
- ['Агриппина'],
- ['Ада'],
- ['Аделаида'],
- ['Аза'],
- ['Алевтина'],
- ['Александра'],
- ['Алина'],
- ['Алиса'],
- ['Алла'],
- ['Альбина'],
- ['Анастасия'],
- ['Ангелина'],
- ['Анисья'],
- ['Анна'],
- ['Антонида'],
- ['Антонина'],
- ['Анфиса'],
- ['Аполлинария'],
- ['Ариадна'],
- ['Беатриса'],
- ['Берта'],
- ['Борислава'],
- ['Бронислава'],
- ['Валентина'],
- ['Валерия'],
- ['Ванда'],
- ['Варвара'],
- ['Василиса'],
- ['Васса'],
- ['Вера'],
- ['Вероника'],
- ['Викторина'],
- ['Виктория'],
- ['Виргиния'],
- ['Влада'],
- ['Владилена'],
- ['Владлена'],
- ['Владислава'],
- ['Власта'],
- ['Всеслава'],
- ['Галина'],
- ['Галя'],
- ['Ганна'],
- ['Генриетта'],
- ['Глафира'],
- ['Горислава'],
- ['Дарья'],
- ['Диана'],
- ['Дина'],
- ['Доминика'],
- ['Домна'],
- ['Ева'],
- ['Евгеиня'],
- ['Евдокия'],
- ['Евлампия'],
- ['Екатерина'],
- ['Елена'],
- ['Елизавета'],
- ['Ефросинья'],
- ['Жанна'],
- ['Зинаида'],
- ['Злата'],
- ['Изабелла'],
- ['Изольда'],
- ['Инга'],
- ['Инесса'],
- ['Инна'],
- ['Ираида'],
- ['Ирина'],
- ['Ия'],
- ['Казимира'],
- ['Калерия'],
- ['Капитолина'],
- ['Каролина'],
- ['Кира'],
- ['Клавдия'],
- ['Клара'],
- ['Кларисса'],
- ['Клементина'],
- ['Клеопатра'],
- ['Конкордия'],
- ['Ксения'],
- ['Лада'],
- ['Лариса'],
- ['Леокадия'],
- ['Лиана'],
- ['Лидия'],
- ['Лилиана'],
- ['Клеопатра'],
- ['Конкордия'],
- ['Ксения'],
- ['Лада'],
- ['Лариса'],
- ['Леокадия'],
- ['Лиана'],
- ['Лидия'],
- ['Лилиана'],
- ['Лилия'],
- ['Лия'],
- ['Луиза'],
- ['Лукерья'],
- ['Любава'],
- ['Любомила'],
- ['Любомира'],
- ['Людмила'],
- ['Майя'],
- ['Мальвина'],
- ['Маргарита'],
- ['Марианна'],
- ['Мариетта'],
- ['Марина'],
- ['Мария'],
- ['Марта'],
- ['Марфа'],
- ['Меланья'],
- ['Мелитриса'],
- ['Милана'],
- ['Милена'],
- ['Милица'],
- ['Мира'],
- ['Мирослава'],
- ['Млада'],
- ['Мстислава'],
- ['Муза'],
- ['Надежда'],
- ['Наталья'],
- ['Наталия'],
- ['Неонила'],
- ['Ника'],
- ['Нина'],
- ['Нона'],
- ['Оксана'],
- ['Октябрина'],
- ['Олимпиада'],
- ['Ольга'],
- ['Пелагея'],
- ['Поликсена'],
- ['Полина'],
- ['Прасковья'],
- ['Пульхерия'],
- ['Рада'],
- ['Раиса'],
- ['Регина'],
- ['Рената'],
- ['Римма'],
- ['Рогнеда'],
- ['Роза'],
- ['Розалия'],
- ['Розина'],
- ['Ростислава'],
- ['Руфина'],
- ['Светлана'],
- ['Серафима'],
- ['Сильва'],
- ['Сильвия'],
- ['Саломея'],
- ['Софья'],
- ['Станислава'],
- ['Стела'],
- ['Степанида'],
- ['Сусанна'],
- ['Таисия'],
- ['Тамара'],
- ['Татьяна'],
- ['Ульяна'],
- ['Фаина'],
- ['Федосья'],
- ['Фелицата'],
- ['Флора'],
- ['Флорентина'],
- ['Фатина'],
- ['Харитина'],
- ['Христина'],
- ['Эвелина'],
- ['Элеонора'],
- ['Эльвира'],
- ['Эмилия'],
- ['Эмма'],
- ['Юлия'],
- ['Ядвига'],
- ['Ярослава'],
- ];
- }
- /**
- * @dataProvider menNamesProvider()
- */
- public function testInflectionForMen($name, $name2, $name3, $name4, $name5, $name6)
- {
- $this->assertEquals([
- Cases::IMENIT => $name,
- Cases::RODIT => $name2,
- Cases::DAT => $name3,
- Cases::VINIT => $name4,
- Cases::TVORIT => $name5,
- Cases::PREDLOJ => $name6,
- ], FirstNamesInflection::getCases($name, FirstNamesInflection::MALE));
- }
- /**
- * @dataProvider womenNamesProvider()
- */
- public function testInflectionForWomen($name, $name2, $name3, $name4, $name5, $name6)
- {
- $this->assertEquals([
- Cases::IMENIT => $name,
- Cases::RODIT => $name2,
- Cases::DAT => $name3,
- Cases::VINIT => $name4,
- Cases::TVORIT => $name5,
- Cases::PREDLOJ => $name6,
- ], FirstNamesInflection::getCases($name, FirstNamesInflection::FEMALE));
- }
- public function menNamesProvider()
- {
- return [
- ['Иван', 'Ивана', 'Ивану', 'Ивана', 'Иваном', 'Иване'],
- ['Святослав', 'Святослава', 'Святославу', 'Святослава', 'Святославом', 'Святославе'],
- ['Тимур', 'Тимура', 'Тимуру', 'Тимура', 'Тимуром', 'Тимуре'],
- ['Рем', 'Рема', 'Рему', 'Рема', 'Ремом', 'Реме'],
- ['Казбич', 'Казбича', 'Казбичу', 'Казбича', 'Казбичем', 'Казбиче'],
- ['Игорь', 'Игоря', 'Игорю', 'Игоря', 'Игорем', 'Игоре'],
- ['Виль', 'Виля', 'Вилю', 'Виля', 'Вилем', 'Виле'],
- ['Рауль', 'Рауля', 'Раулю', 'Рауля', 'Раулем', 'Рауле'],
- ['Шамиль', 'Шамиля', 'Шамилю', 'Шамиля', 'Шамилем', 'Шамиле'],
- ['Петрусь', 'Петруся', 'Петрусю', 'Петруся', 'Петрусем', 'Петрусе'],
- ['Абай', 'Абая', 'Абаю', 'Абая', 'Абаем', 'Абае'],
- ['Федяй', 'Федяя', 'Федяю', 'Федяя', 'Федяем', 'Федяе'],
- ['Андрей', 'Андрея', 'Андрею', 'Андрея', 'Андреем', 'Андрее'],
- ['Гарей', 'Гарея', 'Гарею', 'Гарея', 'Гареем', 'Гарее'],
- ['Джансуй', 'Джансуя', 'Джансую', 'Джансуя', 'Джансуем', 'Джансуе'],
- ['Ной', 'Ноя', 'Ною', 'Ноя', 'Ноем', 'Ное'],
- ['Дмитрий', 'Дмитрия', 'Дмитрию', 'Дмитрия', 'Дмитрием', 'Дмитрии'],
- ['Гордий', 'Гордия', 'Гордию', 'Гордия', 'Гордием', 'Гордии'],
- ['Пий', 'Пия', 'Пию', 'Пия', 'Пием', 'Пии'],
- ['Геннадий', 'Геннадия', 'Геннадию', 'Геннадия', 'Геннадием', 'Геннадии'],
- ['Хаджибий', 'Хаджибия', 'Хаджибию', 'Хаджибия', 'Хаджибием', 'Хаджибии'],
- ['Никита', 'Никиты', 'Никите', 'Никиту', 'Никитой', 'Никите'],
- ['Данила', 'Данилы', 'Даниле', 'Данилу', 'Данилой', 'Даниле'],
- ['Эйса', 'Эйсы', 'Эйсе', 'Эйсу', 'Эйсой', 'Эйсе'],
- ['Кузьма', 'Кузьмы', 'Кузьме', 'Кузьму', 'Кузьмой', 'Кузьме'],
- ['Мустафа', 'Мустафы', 'Мустафе', 'Мустафу', 'Мустафой', 'Мустафе'],
- ['Байхужа', 'Байхужи', 'Байхуже', 'Байхужу', 'Байхужой', 'Байхуже'],
- // ['Хасанша', 'Хасанши', 'Хасанше', 'Хасаншу', 'Хасаншой', 'Хасанше'],
- ['Карча', 'Карчи', 'Карче', 'Карчу', 'Карчой', 'Карче'],
- ['Гыкга', 'Гыкги', 'Гыкге', 'Гыкгу', 'Гыкгой', 'Гыкге'],
- ['Бетикка', 'Бетикки', 'Бетикке', 'Бетикку', 'Бетиккой', 'Бетикке'],
- ['Анания', 'Анании', 'Анании', 'Ананию', 'Ананией', 'Анании'],
- ['Неемия', 'Неемии', 'Неемии', 'Неемию', 'Неемией', 'Неемии'],
- ['Малахия', 'Малахии', 'Малахии', 'Малахию', 'Малахией', 'Малахии'],
- ['Осия', 'Осии', 'Осии', 'Осию', 'Осией', 'Осии'],
- ['Иеремия', 'Иеремии', 'Иеремии', 'Иеремию', 'Иеремией', 'Иеремии'],
- ['Илия', 'Илии', 'Илии', 'Илию', 'Илией', 'Илии'],
- ['Данило', 'Данилы', 'Даниле', 'Данилу', 'Данилой', 'Даниле'],
- ['Иванко', 'Иванки', 'Иванке', 'Иванку', 'Иванкой', 'Иванке'],
- ['Слава', 'Славы', 'Славе', 'Славу', 'Славой', 'Славе'],
- ['Сергей', 'Сергея', 'Сергею', 'Сергея', 'Сергеем', 'Сергее'],
- ['Илья', 'Ильи', 'Илье', 'Илью', 'Ильей', 'Илье'],
- ['Санек', 'Санька', 'Саньку', 'Санька', 'Саньком', 'Саньке'],
- ['Витёк', 'Витька', 'Витьку', 'Витька', 'Витьком', 'Витьке'],
- ['Салмонбек', 'Салмонбека', 'Салмонбеку', 'Салмонбека', 'Салмонбеком', 'Салмонбеке'],
- ['Саша', 'Саши', 'Саше', 'Сашу', 'Сашей', 'Саше'],
- ];
- }
- public function womenNamesProvider()
- {
- return [
- ['Анна', 'Анны', 'Анне', 'Анну', 'Анной', 'Анне'],
- ['Эра', 'Эры', 'Эре', 'Эру', 'Эрой', 'Эре'],
- ['Асма', 'Асмы', 'Асме', 'Асму', 'Асмой', 'Асме'],
- ['Хафиза', 'Хафизы', 'Хафизе', 'Хафизу', 'Хафизой', 'Хафизе'],
- ['Ольга', 'Ольги', 'Ольге', 'Ольгу', 'Ольгой', 'Ольге'],
- ['Моника', 'Моники', 'Монике', 'Монику', 'Моникой', 'Монике'],
- ['Голиндуха', 'Голиндухи', 'Голиндухе', 'Голиндуху', 'Голиндухой', 'Голиндухе'],
- ['Снежа', 'Снежи', 'Снеже', 'Снежу', 'Снежой', 'Снеже'],
- ['Гайша', 'Гайши', 'Гайше', 'Гайшу', 'Гайшой', 'Гайше'],
- ['Милица', 'Милицы', 'Милице', 'Милицу', 'Милицей', 'Милице'],
- ['Ляуца', 'Ляуцы', 'Ляуце', 'Ляуцу', 'Ляуцей', 'Ляуце'],
- ['Куаца', 'Куацы', 'Куаце', 'Куацу', 'Куацей', 'Куаце'],
- ['Олеся', 'Олеси', 'Олесе', 'Олесю', 'Олесей', 'Олесе'],
- ['Дарья', 'Дарьи', 'Дарье', 'Дарью', 'Дарьей', 'Дарье'],
- ['Майя', 'Майи', 'Майе', 'Майю', 'Майей', 'Майе'],
- ['Моя', 'Мои', 'Мое', 'Мою', 'Моей', 'Мое'],
- ['Пелагея', 'Пелагеи', 'Пелагее', 'Пелагею', 'Пелагеей', 'Пелагее'],
- ['Марция', 'Марции', 'Марции', 'Марцию', 'Марцией', 'Марции'],
- ['Наталия', 'Наталии', 'Наталии', 'Наталию', 'Наталией', 'Наталии'],
- ['Армения', 'Армении', 'Армении', 'Армению', 'Арменией', 'Армении'],
- ['Лия', 'Лии', 'Лии', 'Лию', 'Лией', 'Лии'],
- ['Ия', 'Ии', 'Ии', 'Ию', 'Ией', 'Ии'],
- ['Любовь', 'Любови', 'Любови', 'Любовь', 'Любовью', 'Любови'],
- ['Эсфирь', 'Эсфири', 'Эсфири', 'Эсфирь', 'Эсфирью', 'Эсфири'],
- ['Нинель', 'Нинели', 'Нинели', 'Нинель', 'Нинелью', 'Нинели'],
- ['Айгюль', 'Айгюли', 'Айгюли', 'Айгюль', 'Айгюлью', 'Айгюли'],
- ['Вартануш', 'Вартануши', 'Вартануши', 'Вартануш', 'Вартанушью', 'Вартануши'],
- ['Катиш', 'Катиши', 'Катиши', 'Катиш', 'Катишью', 'Катиши'],
- ['Хуж', 'Хужи', 'Хужи', 'Хуж', 'Хужью', 'Хужи'],
- ['Гуащ', 'Гуащи', 'Гуащи', 'Гуащ', 'Гуащью', 'Гуащи'],
- ['Карач', 'Карачи', 'Карачи', 'Карач', 'Карачью', 'Карачи'],
- ['Мария', 'Марии', 'Марии', 'Марию', 'Марией', 'Марии'],
- ['Дарья', 'Дарьи', 'Дарье', 'Дарью', 'Дарьей', 'Дарье'],
- // ['Манижа', 'Манижы', 'Маниже', 'Манижу', 'Манижей', 'Маниже'],
- ];
- }
- /**
- * @dataProvider immutableNamesProvider()
- */
- public function testImmutableNames($name, $gender)
- {
- $this->assertFalse(FirstNamesInflection::isMutable($name, $gender));
- }
- public function immutableNamesProvider()
- {
- return [
- ['Тореро', FirstNamesInflection::FEMALE],
- ['Айбу', FirstNamesInflection::FEMALE],
- ['Хосе', FirstNamesInflection::FEMALE],
- ['Каншау', FirstNamesInflection::FEMALE],
- ['Франсуа', FirstNamesInflection::FEMALE],
- ['Тойбухаа', FirstNamesInflection::FEMALE],
- ['Качаа', FirstNamesInflection::FEMALE],
- ['Зиа', FirstNamesInflection::FEMALE],
- ['Хожулаа', FirstNamesInflection::FEMALE],
- ['Бетси', FirstNamesInflection::FEMALE],
- ['Элли', FirstNamesInflection::FEMALE],
- ['Энджи', FirstNamesInflection::FEMALE],
- ['Мэри', FirstNamesInflection::FEMALE],
- ['Сью', FirstNamesInflection::FEMALE],
- ['Маро', FirstNamesInflection::FEMALE],
- ['Розмари', FirstNamesInflection::FEMALE],
- ['Алсу', FirstNamesInflection::FEMALE],
- ['Суок', FirstNamesInflection::FEMALE],
- ['Сольвейг', FirstNamesInflection::FEMALE],
- ['Гретхен', FirstNamesInflection::FEMALE],
- ['Ирэн', FirstNamesInflection::FEMALE],
- ['Элен', FirstNamesInflection::FEMALE],
- ['Элис', FirstNamesInflection::FEMALE],
- ['Аннет', FirstNamesInflection::FEMALE],
- ['Джейн', FirstNamesInflection::FEMALE],
- ['Катрин', FirstNamesInflection::FEMALE],
- ['Эстер', FirstNamesInflection::FEMALE],
- ['Акмарал', FirstNamesInflection::FEMALE],
- ['Русудан', FirstNamesInflection::FEMALE],
- ['Шушаник', FirstNamesInflection::FEMALE],
- ['Алтын', FirstNamesInflection::FEMALE],
- ['Гульназ', FirstNamesInflection::FEMALE],
- ['Эрли', FirstNamesInflection::MALE],
- ['Анри', FirstNamesInflection::MALE],
- ['Низами', FirstNamesInflection::MALE],
- ['Оли', FirstNamesInflection::MALE],
- ['Ли', FirstNamesInflection::MALE],
- ['Рево', FirstNamesInflection::MALE],
- ['Ромео', FirstNamesInflection::MALE],
- ['Отто', FirstNamesInflection::MALE],
- ['Педро', FirstNamesInflection::MALE],
- ['Лео', FirstNamesInflection::MALE],
- ['Антонио', FirstNamesInflection::MALE],
- ['Микеле', FirstNamesInflection::MALE],
- ['Андрэ', FirstNamesInflection::MALE],
- ['Хью', FirstNamesInflection::MALE],
- ['Ру', FirstNamesInflection::MALE],
- ['Киану', FirstNamesInflection::MALE],
- ['Грегори', FirstNamesInflection::MALE],
- ['Гиви', FirstNamesInflection::MALE],
- ['Франсуа', FirstNamesInflection::MALE],
- ['А', NamesInflection::FEMALE],
- ];
- }
- /**
- * @dataProvider mutableNamesProvider()
- */
- public function testMutableNames($name, $gender)
- {
- $this->assertTrue(FirstNamesInflection::isMutable($name, $gender));
- }
- /**
- * @dataProvider allMenNamesProvider()
- */
- public function testDetectGenderMen($name)
- {
- $result = FirstNamesInflection::detectGender($name);
- if ($result !== null) {
- $this->assertEquals(NamesInflection::MALE, $result, 'Name ' . $name);
- } else {
- $this->assertEquals(NamesInflection::MALE, null, 'Name ' . $name);
- }
- }
- /**
- * @dataProvider allWomenNamesProvider()
- */
- public function testDetectGenderWomen($name)
- {
- $result = FirstNamesInflection::detectGender($name);
- if ($result !== null) {
- $this->assertEquals(NamesInflection::FEMALE, $result, 'Name ' . $name);
- } else {
- $this->assertEquals(NamesInflection::FEMALE, null, 'Name ' . $name);
- }
- }
- public function mutableNamesProvider()
- {
- return [
- ['Иван', FirstNamesInflection::MALE],
- ['Игорь', FirstNamesInflection::MALE],
- ['Андрей', FirstNamesInflection::MALE],
- ['Фома', FirstNamesInflection::MALE],
- ['Никита', FirstNamesInflection::MALE],
- ['Илья', FirstNamesInflection::MALE],
- ['Анна', FirstNamesInflection::FEMALE],
- ['Наталья', FirstNamesInflection::FEMALE],
- ['Виринея', FirstNamesInflection::FEMALE],
- // foreign names
- ['Айдын', FirstNamesInflection::MALE],
- ['Наиль', FirstNamesInflection::MALE],
- ['Тукай', FirstNamesInflection::MALE],
- ['Мустафа', FirstNamesInflection::MALE],
- ['Нафиса', FirstNamesInflection::FEMALE],
- ['Асия', FirstNamesInflection::FEMALE],
- ['Лючия', FirstNamesInflection::FEMALE],
- ];
- }
- /**
- * @dataProvider menNamesProvider()
- */
- public function testGetCase($name, $case2)
- {
- $this->assertEquals($case2, FirstNamesInflection::getCase($name, Cases::RODIT, Gender::MALE));
- }
- }
|