From bc5b2f33fdcbe35b8d4a0c423692e43bfda1b559 Mon Sep 17 00:00:00 2001 From: wapmorgan Date: Sun, 19 Jun 2022 00:29:28 +0300 Subject: [PATCH] Fix #120 --- src/Russian/NounPluralization.php | 2 +- tests/Russian/NounPluralizationTest.php | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Russian/NounPluralization.php b/src/Russian/NounPluralization.php index 570af96..d6e6491 100644 --- a/src/Russian/NounPluralization.php +++ b/src/Russian/NounPluralization.php @@ -195,7 +195,7 @@ protected static function declinateSubstative($word, $animateness) || in_array(S::slice($word, -2), ['чь', 'сь', 'ть', 'нь', 'рь', 'дь', 'ль'], true) || (static::isVowel($last) && in_array(S::slice($word, -2, -1), ['ч', 'к'], true))) { // before ч, чь, сь, ч+vowel, к+vowel $forms[Cases::IMENIT] = $prefix.'и'; - } elseif (in_array($last, ['н', 'ц', 'р', 'т'], true)) { + } elseif (in_array($last, ['н', 'ц', 'р', 'т', 'с', 'ж'], true)) { $forms[Cases::IMENIT] = $prefix.'ы'; } else { $forms[Cases::IMENIT] = static::chooseVowelAfterConsonant($last, $soft_last, $prefix.'я', $prefix.'а'); diff --git a/tests/Russian/NounPluralizationTest.php b/tests/Russian/NounPluralizationTest.php index a9fe9e7..ee74461 100644 --- a/tests/Russian/NounPluralizationTest.php +++ b/tests/Russian/NounPluralizationTest.php @@ -114,6 +114,7 @@ public function testPluralInflection($word, $animateness, $inflected) public function pluralWordsProvider() { return [ + // 1 склонение ['дом', false, ['дома', 'домов', 'домам', 'дома', 'домами', 'домах']], ['склон', false, ['склоны', 'склонов', 'склонам', 'склоны', 'склонами', 'склонах']], ['поле', false, ['поля', 'полей', 'полям', 'поля', 'полями', 'полях']], @@ -131,7 +132,10 @@ public function pluralWordsProvider() ['библиотекарь', true, ['библиотекари', 'библиотекарей', 'библиотекарям', 'библиотекарей', 'библиотекарями', 'библиотекарях']], ['лошадь', false, ['лошади', 'лошадей', 'лошадям', 'лошади', 'лошадями', 'лошадях']], ['любитель', true, ['любители', 'любителей', 'любителям', 'любителей', 'любителями', 'любителях']], + ['матрас', false, ['матрасы', 'матрасов', 'матрасам', 'матрасы', 'матрасами', 'матрасах']], + ['коттедж', false, ['коттеджы', 'коттеджей', 'коттеджам', 'коттеджы', 'коттеджами', 'коттеджах']], + // 2 склонение ['копейка', false, ['копейки', 'копеек', 'копейкам', 'копейки', 'копейками', 'копейках']], ['штука', false, ['штуки', 'штук', 'штукам', 'штуки', 'штуками', 'штуках']], ['батарейка', false, ['батарейки', 'батареек', 'батарейкам', 'батарейки', 'батарейками', 'батарейках']],