Skip to content

Commit

Permalink
fix: declecion for some place words eg область
Browse files Browse the repository at this point in the history
Closes #14
  • Loading branch information
nodkz committed Nov 30, 2018
1 parent ba8dba3 commit 37cd9f5
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 3 deletions.
31 changes: 29 additions & 2 deletions src/__tests__/city-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -272,7 +272,7 @@ describe('lvovich/city', () => {
Северск, Северске, Северска, Северск
Пушкино, Пушкино, Пушкино, Пушкино
Ноябрьск, Ноябрьске, Ноябрьска, Ноябрьск
Евпатория, Евпатории, Евпатории, Евпатория
Евпатория, Евпатории, Евпатории, Евпаторию
Ачинск, Ачинске, Ачинска, Ачинск
Арзамас, Арзамасе, Арзамаса, Арзамас
Элиста, Элисте, Элисты, Элисту
Expand Down Expand Up @@ -373,7 +373,7 @@ describe('lvovich/city', () => {
Тюрли, в Тюрли, из Тюрли, to Тюрли
Усть-Камменогорск, в Усть-Камменогорске, из Усть-Камменогорска, to Усть-Камменогорск
уфа, в уфе, из уфы, to уфу
Удомля, в Удомле, из Удомли, to Удомля
Удомля, в Удомле, из Удомли, to Удомлю
тарасовка, в тарасовке, из тарасовки, to тарасовку
Бельтны, в Бельтнах, из Бельтнов, to Бельтны
Великие Кочаны, в Великих Кочанах, из Великих Кочанов, to Великие Кочаны
Expand Down Expand Up @@ -429,5 +429,32 @@ describe('lvovich/city', () => {
// });
// console.log(r.join('\n'));
});

it('correct declension for some place words', () => {
expect3fnFromDemo(
`
область, в области, из области, to область
регион, в регионе, из региона, to регион
станица, в станице, из станицы, to станицу
станиция, в станиции, из станиции, to станицию
аул, в ауле, из аула, to аул
село, в селе, из села, to село
поселок, в поселке, из поселка, to поселок
город, в городе, из города, to город
деревня, в деревне, из деревни, to деревню
урочище, в урочище, из урочища, to урочище
река, в реке, из реки, to реку
озеро, в озере, из озера, to озеро
море, в море, из моря, to море
гора, в горе, из горы, to гору
холм, в холме, из холма, to холм
место, в месте, из места, to место
дорога, в дороге, из дороги, to дорогу
пирс, в пирсе, из пирса, to пирс
порт, в порте, из порта, to порт
лодка, в лодке, из лодки, to лодку
`
);
});
});
});
4 changes: 4 additions & 0 deletions src/city.js
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,10 @@ export function cityTo(name: string) {
return applyMod(part, '-у');
} else if (endsWith(partLower, 'ая')) {
return applyMod(part, '--ую');
} else if (endsWith(partLower, 'ия')) {
return applyMod(part, '--ию');
} else if (endsWith(partLower, 'я')) {
return applyMod(part, '-ю');
}

return part;
Expand Down
18 changes: 17 additions & 1 deletion src/rules/cityRules.js
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,25 @@ const cityInflections: DeclensionCityRuleSetT = {
mods: ['', '', '', '', ''],
},
{
test: ['село'],
test: ['село', 'озеро', 'место'],
mods: ['-а', '-у', '', 'м', '-е'],
},
{
test: ['область'],
mods: ['-и', '-и', '', 'ю', '-и'],
},
{
test: ['деревня'],
mods: ['-и', '-е', '-ю', '-ей', '-е'],
},
{
test: ['море'],
mods: ['-я', '-ю', '', 'м', ''],
},
{
test: ['холм'],
mods: ['а', 'у', '', 'ом', 'е'],
},
],
suffixes: [
{
Expand Down

0 comments on commit 37cd9f5

Please sign in to comment.