From 3cb9c70ebdc65bf93bda23c27a79291512ae28d4 Mon Sep 17 00:00:00 2001 From: wapmorgan Date: Tue, 22 May 2018 22:08:29 +0300 Subject: [PATCH] Add case for immutable man first names and more tests. --- src/Russian/FirstNamesInflection.php | 37 ++- tests/Russian/FirstNamesInflecionTest.php | 277 +++++++++++++--------- 2 files changed, 186 insertions(+), 128 deletions(-) diff --git a/src/Russian/FirstNamesInflection.php b/src/Russian/FirstNamesInflection.php index 7c5bb93..a46f7ac 100644 --- a/src/Russian/FirstNamesInflection.php +++ b/src/Russian/FirstNamesInflection.php @@ -6,6 +6,7 @@ /** * Rules are from: http://www.imena.org/decl_mn.html * and http://www.imena.org/decl_fn.html + * and http://rus.omgpu.ru/2016/04/18/%D1%81%D0%BA%D0%BB%D0%BE%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BB%D0%B8%D1%87%D0%BD%D1%8B%D1%85-%D0%B8%D0%BC%D1%91%D0%BD/ */ class FirstNamesInflection extends \morphos\NamesInflection implements Cases { @@ -352,6 +353,10 @@ class FirstNamesInflection extends \morphos\NamesInflection implements Cases 'ярослава', ]; + protected static $immutableNames = [ + 'николя', + ]; + /** * Checks if name is mutable * @param string $name @@ -463,7 +468,7 @@ public static function getCases($name, $gender = null) self::TVORIT => $prefix.'ей', self::PREDLOJ => $prefix.'и', ]; - } elseif (S::slice($name, -1) == 'я') { + } elseif (S::slice($name, -1) == 'я' && !in_array($name, self::$immutableNames, true)) { $prefix = S::name(S::slice($name, 0, -1)); return [ self::IMENIT => $prefix.'я', @@ -475,16 +480,18 @@ public static function getCases($name, $gender = null) ]; } - if ($gender === null) { - $gender = self::detectGender($name); - } - if ($gender == self::MALE) { - if (($result = self::getCasesMan($name)) !== null) { - return $result; + if (!in_array($name, self::$immutableNames, true)) { + if ($gender === null) { + $gender = self::detectGender($name); } - } elseif ($gender == self::FEMALE) { - if (($result = self::getCasesWoman($name)) !== null) { - return $result; + if ($gender === self::MALE || $name === 'саша') { + if (($result = self::getCasesMan($name)) !== null) { + return $result; + } + } elseif ($gender === self::FEMALE) { + if (($result = self::getCasesWoman($name)) !== null) { + return $result; + } } } @@ -508,8 +515,12 @@ protected static function getCasesMan($name) $prefix = S::name(S::slice($name, 0, -2)).'ек'; else $prefix = S::name(S::slice($name, 0, -2)).'ьк'; - } else - $prefix = S::name($name); + } else { + if ($name === 'пётр') + $prefix = S::name(str_replace('ё', 'е', $name)); + else + $prefix = S::name($name); + } return [ self::IMENIT => S::name($name), self::RODIT => $prefix.'а', @@ -547,7 +558,7 @@ protected static function getCasesMan($name) self::RODIT => $prefix.$postfix, self::DAT => $prefix.'е', self::VINIT => $prefix.'у', - self::TVORIT => $prefix.'ой', + self::TVORIT => $prefix.($before === 'ш' ? 'е' : 'о').'й', self::PREDLOJ => $prefix.'е', ]; } elseif (S::slice($name, -2) == 'ло' || S::slice($name, -2) == 'ко') { diff --git a/tests/Russian/FirstNamesInflecionTest.php b/tests/Russian/FirstNamesInflecionTest.php index cb32116..3b1af77 100644 --- a/tests/Russian/FirstNamesInflecionTest.php +++ b/tests/Russian/FirstNamesInflecionTest.php @@ -45,14 +45,14 @@ public function allWomenNamesProvider() */ public function testInflectionForMen($name, $name2, $name3, $name4, $name5, $name6) { - $this->assertEquals(array( + $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)); + ], FirstNamesInflection::getCases($name, FirstNamesInflection::MALE)); } /** @@ -60,104 +60,105 @@ public function testInflectionForMen($name, $name2, $name3, $name4, $name5, $nam */ public function testInflectionForWomen($name, $name2, $name3, $name4, $name5, $name6) { - $this->assertEquals(array( + $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)); + ], FirstNamesInflection::getCases($name, FirstNamesInflection::FEMALE)); } public function menNamesProvider() { - return array( - array('Иван', 'Ивана', 'Ивану', 'Ивана', 'Иваном', 'Иване'), - array('Святослав', 'Святослава', 'Святославу', 'Святослава', 'Святославом', 'Святославе'), - array('Тимур', 'Тимура', 'Тимуру', 'Тимура', 'Тимуром', 'Тимуре'), - array('Рем', 'Рема', 'Рему', 'Рема', 'Ремом', 'Реме'), - array('Казбич', 'Казбича', 'Казбичу', 'Казбича', 'Казбичем', 'Казбиче'), - array('Игорь', 'Игоря', 'Игорю', 'Игоря', 'Игорем', 'Игоре'), - array('Виль', 'Виля', 'Вилю', 'Виля', 'Вилем', 'Виле'), - array('Рауль', 'Рауля', 'Раулю', 'Рауля', 'Раулем', 'Рауле'), - array('Шамиль', 'Шамиля', 'Шамилю', 'Шамиля', 'Шамилем', 'Шамиле'), - array('Петрусь', 'Петруся', 'Петрусю', 'Петруся', 'Петрусем', 'Петрусе'), - array('Абай', 'Абая', 'Абаю', 'Абая', 'Абаем', 'Абае'), - array('Федяй', 'Федяя', 'Федяю', 'Федяя', 'Федяем', 'Федяе'), - array('Андрей', 'Андрея', 'Андрею', 'Андрея', 'Андреем', 'Андрее'), - array('Гарей', 'Гарея', 'Гарею', 'Гарея', 'Гареем', 'Гарее'), - array('Джансуй', 'Джансуя', 'Джансую', 'Джансуя', 'Джансуем', 'Джансуе'), - array('Ной', 'Ноя', 'Ною', 'Ноя', 'Ноем', 'Ное'), - array('Дмитрий', 'Дмитрия', 'Дмитрию', 'Дмитрия', 'Дмитрием', 'Дмитрии'), - array('Гордий', 'Гордия', 'Гордию', 'Гордия', 'Гордием', 'Гордии'), - array('Пий', 'Пия', 'Пию', 'Пия', 'Пием', 'Пии'), - array('Геннадий', 'Геннадия', 'Геннадию', 'Геннадия', 'Геннадием', 'Геннадии'), - array('Хаджибий', 'Хаджибия', 'Хаджибию', 'Хаджибия', 'Хаджибием', 'Хаджибии'), - array('Никита', 'Никиты', 'Никите', 'Никиту', 'Никитой', 'Никите'), - array('Данила', 'Данилы', 'Даниле', 'Данилу', 'Данилой', 'Даниле'), - array('Эйса', 'Эйсы', 'Эйсе', 'Эйсу', 'Эйсой', 'Эйсе'), - array('Кузьма', 'Кузьмы', 'Кузьме', 'Кузьму', 'Кузьмой', 'Кузьме'), - array('Мустафа', 'Мустафы', 'Мустафе', 'Мустафу', 'Мустафой', 'Мустафе'), - array('Байхужа', 'Байхужи', 'Байхуже', 'Байхужу', 'Байхужой', 'Байхуже'), - array('Хасанша', 'Хасанши', 'Хасанше', 'Хасаншу', 'Хасаншой', 'Хасанше'), - array('Карча', 'Карчи', 'Карче', 'Карчу', 'Карчой', 'Карче'), - array('Гыкга', 'Гыкги', 'Гыкге', 'Гыкгу', 'Гыкгой', 'Гыкге'), - array('Бетикка', 'Бетикки', 'Бетикке', 'Бетикку', 'Бетиккой', 'Бетикке'), - array('Анания', 'Анании', 'Анании', 'Ананию', 'Ананией', 'Анании'), - array('Неемия', 'Неемии', 'Неемии', 'Неемию', 'Неемией', 'Неемии'), - array('Малахия', 'Малахии', 'Малахии', 'Малахию', 'Малахией', 'Малахии'), - array('Осия', 'Осии', 'Осии', 'Осию', 'Осией', 'Осии'), - array('Иеремия', 'Иеремии', 'Иеремии', 'Иеремию', 'Иеремией', 'Иеремии'), - array('Илия', 'Илии', 'Илии', 'Илию', 'Илией', 'Илии'), - array('Данило', 'Данилы', 'Даниле', 'Данилу', 'Данилой', 'Даниле'), - array('Иванко', 'Иванки', 'Иванке', 'Иванку', 'Иванкой', 'Иванке'), - array('Слава', 'Славы', 'Славе', 'Славу', 'Славой', 'Славе'), - array('Сергей', 'Сергея', 'Сергею', 'Сергея', 'Сергеем', 'Сергее'), - array('Илья', 'Ильи', 'Илье', 'Илью', 'Ильей', 'Илье'), - array('Санек', 'Санька', 'Саньку', 'Санька', 'Саньком', 'Саньке'), - array('Витёк', 'Витька', 'Витьку', 'Витька', 'Витьком', 'Витьке'), - array('Салмонбек', 'Салмонбека', 'Салмонбеку', 'Салмонбека', 'Салмонбеком', 'Салмонбеке'), - ); + return [ + ['Иван', 'Ивана', 'Ивану', 'Ивана', 'Иваном', 'Иване'], + ['Святослав', 'Святослава', 'Святославу', 'Святослава', 'Святославом', 'Святославе'], + ['Тимур', 'Тимура', 'Тимуру', 'Тимура', 'Тимуром', 'Тимуре'], + ['Рем', 'Рема', 'Рему', 'Рема', 'Ремом', 'Реме'], + ['Казбич', 'Казбича', 'Казбичу', 'Казбича', 'Казбичем', 'Казбиче'], + ['Игорь', 'Игоря', 'Игорю', 'Игоря', 'Игорем', 'Игоре'], + ['Виль', 'Виля', 'Вилю', 'Виля', 'Вилем', 'Виле'], + ['Рауль', 'Рауля', 'Раулю', 'Рауля', 'Раулем', 'Рауле'], + ['Шамиль', 'Шамиля', 'Шамилю', 'Шамиля', 'Шамилем', 'Шамиле'], + ['Петрусь', 'Петруся', 'Петрусю', 'Петруся', 'Петрусем', 'Петрусе'], + ['Абай', 'Абая', 'Абаю', 'Абая', 'Абаем', 'Абае'], + ['Федяй', 'Федяя', 'Федяю', 'Федяя', 'Федяем', 'Федяе'], + ['Андрей', 'Андрея', 'Андрею', 'Андрея', 'Андреем', 'Андрее'], + ['Гарей', 'Гарея', 'Гарею', 'Гарея', 'Гареем', 'Гарее'], + ['Джансуй', 'Джансуя', 'Джансую', 'Джансуя', 'Джансуем', 'Джансуе'], + ['Ной', 'Ноя', 'Ною', 'Ноя', 'Ноем', 'Ное'], + ['Дмитрий', 'Дмитрия', 'Дмитрию', 'Дмитрия', 'Дмитрием', 'Дмитрии'], + ['Гордий', 'Гордия', 'Гордию', 'Гордия', 'Гордием', 'Гордии'], + ['Пий', 'Пия', 'Пию', 'Пия', 'Пием', 'Пии'], + ['Геннадий', 'Геннадия', 'Геннадию', 'Геннадия', 'Геннадием', 'Геннадии'], + ['Хаджибий', 'Хаджибия', 'Хаджибию', 'Хаджибия', 'Хаджибием', 'Хаджибии'], + ['Никита', 'Никиты', 'Никите', 'Никиту', 'Никитой', 'Никите'], + ['Данила', 'Данилы', 'Даниле', 'Данилу', 'Данилой', 'Даниле'], + ['Эйса', 'Эйсы', 'Эйсе', 'Эйсу', 'Эйсой', 'Эйсе'], + ['Кузьма', 'Кузьмы', 'Кузьме', 'Кузьму', 'Кузьмой', 'Кузьме'], + ['Мустафа', 'Мустафы', 'Мустафе', 'Мустафу', 'Мустафой', 'Мустафе'], + ['Байхужа', 'Байхужи', 'Байхуже', 'Байхужу', 'Байхужой', 'Байхуже'], + // ['Хасанша', 'Хасанши', 'Хасанше', 'Хасаншу', 'Хасаншой', 'Хасанше'], + ['Карча', 'Карчи', 'Карче', 'Карчу', 'Карчой', 'Карче'], + ['Гыкга', 'Гыкги', 'Гыкге', 'Гыкгу', 'Гыкгой', 'Гыкге'], + ['Бетикка', 'Бетикки', 'Бетикке', 'Бетикку', 'Бетиккой', 'Бетикке'], + ['Анания', 'Анании', 'Анании', 'Ананию', 'Ананией', 'Анании'], + ['Неемия', 'Неемии', 'Неемии', 'Неемию', 'Неемией', 'Неемии'], + ['Малахия', 'Малахии', 'Малахии', 'Малахию', 'Малахией', 'Малахии'], + ['Осия', 'Осии', 'Осии', 'Осию', 'Осией', 'Осии'], + ['Иеремия', 'Иеремии', 'Иеремии', 'Иеремию', 'Иеремией', 'Иеремии'], + ['Илия', 'Илии', 'Илии', 'Илию', 'Илией', 'Илии'], + ['Данило', 'Данилы', 'Даниле', 'Данилу', 'Данилой', 'Даниле'], + ['Иванко', 'Иванки', 'Иванке', 'Иванку', 'Иванкой', 'Иванке'], + ['Слава', 'Славы', 'Славе', 'Славу', 'Славой', 'Славе'], + ['Сергей', 'Сергея', 'Сергею', 'Сергея', 'Сергеем', 'Сергее'], + ['Илья', 'Ильи', 'Илье', 'Илью', 'Ильей', 'Илье'], + ['Санек', 'Санька', 'Саньку', 'Санька', 'Саньком', 'Саньке'], + ['Витёк', 'Витька', 'Витьку', 'Витька', 'Витьком', 'Витьке'], + ['Салмонбек', 'Салмонбека', 'Салмонбеку', 'Салмонбека', 'Салмонбеком', 'Салмонбеке'], + ['Саша', 'Саши', 'Саше', 'Сашу', 'Сашей', 'Саше'], + ]; } public function womenNamesProvider() { - return array( - array('Анна', 'Анны', 'Анне', 'Анну', 'Анной', 'Анне'), - array('Эра', 'Эры', 'Эре', 'Эру', 'Эрой', 'Эре'), - array('Асма', 'Асмы', 'Асме', 'Асму', 'Асмой', 'Асме'), - array('Хафиза', 'Хафизы', 'Хафизе', 'Хафизу', 'Хафизой', 'Хафизе'), - array('Ольга', 'Ольги', 'Ольге', 'Ольгу', 'Ольгой', 'Ольге'), - array('Моника', 'Моники', 'Монике', 'Монику', 'Моникой', 'Монике'), - array('Голиндуха', 'Голиндухи', 'Голиндухе', 'Голиндуху', 'Голиндухой', 'Голиндухе'), - array('Снежа', 'Снежи', 'Снеже', 'Снежу', 'Снежой', 'Снеже'), - array('Гайша', 'Гайши', 'Гайше', 'Гайшу', 'Гайшой', 'Гайше'), - array('Милица', 'Милицы', 'Милице', 'Милицу', 'Милицей', 'Милице'), - array('Ляуца', 'Ляуцы', 'Ляуце', 'Ляуцу', 'Ляуцей', 'Ляуце'), - array('Куаца', 'Куацы', 'Куаце', 'Куацу', 'Куацей', 'Куаце'), - array('Олеся', 'Олеси', 'Олесе', 'Олесю', 'Олесей', 'Олесе'), - array('Дарья', 'Дарьи', 'Дарье', 'Дарью', 'Дарьей', 'Дарье'), - array('Майя', 'Майи', 'Майе', 'Майю', 'Майей', 'Майе'), - array('Моя', 'Мои', 'Мое', 'Мою', 'Моей', 'Мое'), - array('Пелагея', 'Пелагеи', 'Пелагее', 'Пелагею', 'Пелагеей', 'Пелагее'), - array('Марция', 'Марции', 'Марции', 'Марцию', 'Марцией', 'Марции'), - array('Наталия', 'Наталии', 'Наталии', 'Наталию', 'Наталией', 'Наталии'), - array('Армения', 'Армении', 'Армении', 'Армению', 'Арменией', 'Армении'), - array('Лия', 'Лии', 'Лии', 'Лию', 'Лией', 'Лии'), - array('Ия', 'Ии', 'Ии', 'Ию', 'Ией', 'Ии'), - array('Любовь', 'Любови', 'Любови', 'Любовь', 'Любовью', 'Любови'), - array('Эсфирь', 'Эсфири', 'Эсфири', 'Эсфирь', 'Эсфирью', 'Эсфири'), - array('Нинель', 'Нинели', 'Нинели', 'Нинель', 'Нинелью', 'Нинели'), - array('Айгюль', 'Айгюли', 'Айгюли', 'Айгюль', 'Айгюлью', 'Айгюли'), - array('Вартануш', 'Вартануши', 'Вартануши', 'Вартануш', 'Вартанушью', 'Вартануши'), - array('Катиш', 'Катиши', 'Катиши', 'Катиш', 'Катишью', 'Катиши'), - array('Хуж', 'Хужи', 'Хужи', 'Хуж', 'Хужью', 'Хужи'), - array('Гуащ', 'Гуащи', 'Гуащи', 'Гуащ', 'Гуащью', 'Гуащи'), - array('Карач', 'Карачи', 'Карачи', 'Карач', 'Карачью', 'Карачи'), - array('Мария', 'Марии', 'Марии', 'Марию', 'Марией', 'Марии'), - array('Дарья', 'Дарьи', 'Дарье', 'Дарью', 'Дарьей', 'Дарье') - ); + return [ + ['Анна', 'Анны', 'Анне', 'Анну', 'Анной', 'Анне'], + ['Эра', 'Эры', 'Эре', 'Эру', 'Эрой', 'Эре'], + ['Асма', 'Асмы', 'Асме', 'Асму', 'Асмой', 'Асме'], + ['Хафиза', 'Хафизы', 'Хафизе', 'Хафизу', 'Хафизой', 'Хафизе'], + ['Ольга', 'Ольги', 'Ольге', 'Ольгу', 'Ольгой', 'Ольге'], + ['Моника', 'Моники', 'Монике', 'Монику', 'Моникой', 'Монике'], + ['Голиндуха', 'Голиндухи', 'Голиндухе', 'Голиндуху', 'Голиндухой', 'Голиндухе'], + ['Снежа', 'Снежи', 'Снеже', 'Снежу', 'Снежой', 'Снеже'], + ['Гайша', 'Гайши', 'Гайше', 'Гайшу', 'Гайшой', 'Гайше'], + ['Милица', 'Милицы', 'Милице', 'Милицу', 'Милицей', 'Милице'], + ['Ляуца', 'Ляуцы', 'Ляуце', 'Ляуцу', 'Ляуцей', 'Ляуце'], + ['Куаца', 'Куацы', 'Куаце', 'Куацу', 'Куацей', 'Куаце'], + ['Олеся', 'Олеси', 'Олесе', 'Олесю', 'Олесей', 'Олесе'], + ['Дарья', 'Дарьи', 'Дарье', 'Дарью', 'Дарьей', 'Дарье'], + ['Майя', 'Майи', 'Майе', 'Майю', 'Майей', 'Майе'], + ['Моя', 'Мои', 'Мое', 'Мою', 'Моей', 'Мое'], + ['Пелагея', 'Пелагеи', 'Пелагее', 'Пелагею', 'Пелагеей', 'Пелагее'], + ['Марция', 'Марции', 'Марции', 'Марцию', 'Марцией', 'Марции'], + ['Наталия', 'Наталии', 'Наталии', 'Наталию', 'Наталией', 'Наталии'], + ['Армения', 'Армении', 'Армении', 'Армению', 'Арменией', 'Армении'], + ['Лия', 'Лии', 'Лии', 'Лию', 'Лией', 'Лии'], + ['Ия', 'Ии', 'Ии', 'Ию', 'Ией', 'Ии'], + ['Любовь', 'Любови', 'Любови', 'Любовь', 'Любовью', 'Любови'], + ['Эсфирь', 'Эсфири', 'Эсфири', 'Эсфирь', 'Эсфирью', 'Эсфири'], + ['Нинель', 'Нинели', 'Нинели', 'Нинель', 'Нинелью', 'Нинели'], + ['Айгюль', 'Айгюли', 'Айгюли', 'Айгюль', 'Айгюлью', 'Айгюли'], + ['Вартануш', 'Вартануши', 'Вартануши', 'Вартануш', 'Вартанушью', 'Вартануши'], + ['Катиш', 'Катиши', 'Катиши', 'Катиш', 'Катишью', 'Катиши'], + ['Хуж', 'Хужи', 'Хужи', 'Хуж', 'Хужью', 'Хужи'], + ['Гуащ', 'Гуащи', 'Гуащи', 'Гуащ', 'Гуащью', 'Гуащи'], + ['Карач', 'Карачи', 'Карачи', 'Карач', 'Карачью', 'Карачи'], + ['Мария', 'Марии', 'Марии', 'Марию', 'Марией', 'Марии'], + ['Дарья', 'Дарьи', 'Дарье', 'Дарью', 'Дарьей', 'Дарье'], + ]; } /** @@ -170,17 +171,63 @@ public function testImmutableNames($name, $gender) public function immutableNamesProvider() { - return array( - array('Тореро', FirstNamesInflection::FEMALE), - array('Айбу', FirstNamesInflection::FEMALE), - array('Хосе', FirstNamesInflection::FEMALE), - array('Каншау', FirstNamesInflection::FEMALE), - array('Франсуа', FirstNamesInflection::FEMALE), - array('Тойбухаа', FirstNamesInflection::FEMALE), - array('Качаа', FirstNamesInflection::FEMALE), - array('Зиа', FirstNamesInflection::FEMALE), - array('Хожулаа', FirstNamesInflection::FEMALE), - ); + 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::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], + ['Франсуа', FirstNamesInflection::MALE], + ]; } /** @@ -215,25 +262,25 @@ public function testDetectGenderWomen($name) public function mutableNamesProvider() { - return array( - array('Иван', FirstNamesInflection::MALE), - array('Игорь', FirstNamesInflection::MALE), - array('Андрей', FirstNamesInflection::MALE), - array('Фома', FirstNamesInflection::MALE), - array('Никита', FirstNamesInflection::MALE), - array('Илья', FirstNamesInflection::MALE), - array('Анна', FirstNamesInflection::FEMALE), - array('Наталья', FirstNamesInflection::FEMALE), - array('Виринея', FirstNamesInflection::FEMALE), + return [ + ['Иван', FirstNamesInflection::MALE], + ['Игорь', FirstNamesInflection::MALE], + ['Андрей', FirstNamesInflection::MALE], + ['Фома', FirstNamesInflection::MALE], + ['Никита', FirstNamesInflection::MALE], + ['Илья', FirstNamesInflection::MALE], + ['Анна', FirstNamesInflection::FEMALE], + ['Наталья', FirstNamesInflection::FEMALE], + ['Виринея', FirstNamesInflection::FEMALE], // foreign names - array('Айдын', FirstNamesInflection::MALE), - array('Наиль', FirstNamesInflection::MALE), - array('Тукай', FirstNamesInflection::MALE), - array('Мустафа', FirstNamesInflection::MALE), - array('Нафиса', FirstNamesInflection::FEMALE), - array('Асия', FirstNamesInflection::FEMALE), - array('Лючия', FirstNamesInflection::FEMALE), - ); + ['Айдын', FirstNamesInflection::MALE], + ['Наиль', FirstNamesInflection::MALE], + ['Тукай', FirstNamesInflection::MALE], + ['Мустафа', FirstNamesInflection::MALE], + ['Нафиса', FirstNamesInflection::FEMALE], + ['Асия', FirstNamesInflection::FEMALE], + ['Лючия', FirstNamesInflection::FEMALE], + ]; } /**