Code Duplication    Length = 3-3 lines in 3 locations

src/Russian/NounPluralization.php 3 locations

@@ 206-208 (lines=3) @@
203
            // exceptions
204
            if (in_array($word, self::$neuterExceptions, true)) {
205
                $forms[Cases::RODIT] = $prefix.'ей';
206
            } elseif (S::slice($word, -2, -1) == 'и') {
207
                $forms[Cases::RODIT] = $prefix.'й';
208
            } else {
209
                $forms[Cases::RODIT] = $prefix;
210
            }
211
        } elseif (S::slice($word, -2) == 'ка' && S::slice($word, -3, -2) !== 'и') { // words ending with -ка: чашка, вилка, ложка, тарелка, копейка, батарейка
@@ 214-216 (lines=3) @@
211
        } elseif (S::slice($word, -2) == 'ка' && S::slice($word, -3, -2) !== 'и') { // words ending with -ка: чашка, вилка, ложка, тарелка, копейка, батарейка
212
            if (S::slice($word, -3, -2) == 'л') {
213
                $forms[Cases::RODIT] = S::slice($word, 0, -2).'ок';
214
            } elseif (S::slice($word, -3, -2) == 'й') {
215
                $forms[Cases::RODIT] = S::slice($word, 0, -3).'ек';
216
            } else {
217
                $forms[Cases::RODIT] = S::slice($word, 0, -2).'ек';
218
            }
219
        } elseif (in_array($last, ['а'], true)) { // обида, ябеда
@@ 225-227 (lines=3) @@
222
            $forms[Cases::RODIT] = $prefix.'й';
223
        } elseif (RussianLanguage::isHissingConsonant($last) || ($soft_last && $last != 'й') || in_array(S::slice($word, -2), ['чь', 'сь', 'ть', 'нь'], true)) {
224
            $forms[Cases::RODIT] = $prefix.'ей';
225
        } elseif ($last == 'й' || S::slice($word, -2) == 'яц') { // месяц
226
            $forms[Cases::RODIT] = $prefix.'ев';
227
        } else { // (self::isConsonant($last) && !RussianLanguage::isHissingConsonant($last))
228
            $forms[Cases::RODIT] = $prefix.'ов';
229
        }
230