summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/js/language/ja/japanese-transforms.js9
-rw-r--r--test/language/japanese-transforms.test.js27
2 files changed, 31 insertions, 5 deletions
diff --git a/ext/js/language/ja/japanese-transforms.js b/ext/js/language/ja/japanese-transforms.js
index 2d688ce5..97de8bcc 100644
--- a/ext/js/language/ja/japanese-transforms.js
+++ b/ext/js/language/ja/japanese-transforms.js
@@ -917,7 +917,14 @@ export const japaneseTransforms = {
{
name: '-ge',
rules: [
- suffixInflection('しげ', 'しい', [], ['adj-i'])
+ suffixInflection('げ', 'い', [], ['adj-i']),
+ suffixInflection('気', 'い', [], ['adj-i'])
+ ]
+ },
+ {
+ name: '-garu',
+ rules: [
+ suffixInflection('がる', 'い', ['v5'], ['adj-i'])
]
},
{
diff --git a/test/language/japanese-transforms.test.js b/test/language/japanese-transforms.test.js
index 45697a19..c1fdb865 100644
--- a/test/language/japanese-transforms.test.js
+++ b/test/language/japanese-transforms.test.js
@@ -39,7 +39,9 @@ const tests = [
{term: '愛しい', source: '愛しくありません', rule: 'adj-i', reasons: ['polite', 'negative']},
{term: '愛しい', source: '愛しくありませんでした', rule: 'adj-i', reasons: ['polite', 'negative', 'past']},
{term: '愛しい', source: '愛しき', rule: 'adj-i', reasons: ['-ki']},
- {term: '愛しい', source: '愛しげ', rule: 'adj-i', reasons: ['-ge']}
+ {term: '愛しい', source: '愛しげ', rule: 'adj-i', reasons: ['-ge']},
+ {term: '愛しい', source: '愛し気', rule: 'adj-i', reasons: ['-ge']},
+ {term: '愛しい', source: '愛しがる', rule: 'adj-i', reasons: ['-garu']}
]
},
{
@@ -77,6 +79,7 @@ const tests = [
{term: '食べる', source: '食べそう', rule: 'v1', reasons: ['-sou']},
{term: '食べる', source: '食べすぎる', rule: 'v1', reasons: ['-sugiru']},
{term: '食べる', source: '食べたい', rule: 'v1', reasons: ['-tai']},
+ {term: '食べる', source: '食べたがる', rule: 'v1', reasons: ['-tai', '-garu']},
{term: '食べる', source: '食べたら', rule: 'v1', reasons: ['-tara']},
{term: '食べる', source: '食べたり', rule: 'v1', reasons: ['-tari']},
{term: '食べる', source: '食べず', rule: 'v1', reasons: ['-zu']},
@@ -131,6 +134,7 @@ const tests = [
{term: '買う', source: '買いそう', rule: 'v5', reasons: ['-sou']},
{term: '買う', source: '買いすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '買う', source: '買いたい', rule: 'v5', reasons: ['-tai']},
+ {term: '買う', source: '買いたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '買う', source: '買ったら', rule: 'v5', reasons: ['-tara']},
{term: '買う', source: '買ったり', rule: 'v5', reasons: ['-tari']},
{term: '買う', source: '買わず', rule: 'v5', reasons: ['-zu']},
@@ -185,6 +189,7 @@ const tests = [
{term: '行く', source: '行きそう', rule: 'v5', reasons: ['-sou']},
{term: '行く', source: '行きすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '行く', source: '行きたい', rule: 'v5', reasons: ['-tai']},
+ {term: '行く', source: '行きたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '行く', source: '行いたら', rule: 'v5', reasons: ['-tara']},
{term: '行く', source: '行いたり', rule: 'v5', reasons: ['-tari']},
{term: '行く', source: '行かず', rule: 'v5', reasons: ['-zu']},
@@ -239,6 +244,7 @@ const tests = [
{term: '泳ぐ', source: '泳ぎそう', rule: 'v5', reasons: ['-sou']},
{term: '泳ぐ', source: '泳ぎすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '泳ぐ', source: '泳ぎたい', rule: 'v5', reasons: ['-tai']},
+ {term: '泳ぐ', source: '泳ぎたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '泳ぐ', source: '泳いだら', rule: 'v5', reasons: ['-tara']},
{term: '泳ぐ', source: '泳いだり', rule: 'v5', reasons: ['-tari']},
{term: '泳ぐ', source: '泳がず', rule: 'v5', reasons: ['-zu']},
@@ -292,6 +298,7 @@ const tests = [
{term: '話す', source: '話しそう', rule: 'v5', reasons: ['-sou']},
{term: '話す', source: '話しすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '話す', source: '話したい', rule: 'v5', reasons: ['-tai']},
+ {term: '話す', source: '話したがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '話す', source: '話したら', rule: 'v5', reasons: ['-tara']},
{term: '話す', source: '話したり', rule: 'v5', reasons: ['-tari']},
{term: '話す', source: '話さず', rule: 'v5', reasons: ['-zu']},
@@ -346,6 +353,7 @@ const tests = [
{term: '待つ', source: '待ちそう', rule: 'v5', reasons: ['-sou']},
{term: '待つ', source: '待ちすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '待つ', source: '待ちたい', rule: 'v5', reasons: ['-tai']},
+ {term: '待つ', source: '待ちたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '待つ', source: '待ったら', rule: 'v5', reasons: ['-tara']},
{term: '待つ', source: '待ったり', rule: 'v5', reasons: ['-tari']},
{term: '待つ', source: '待たず', rule: 'v5', reasons: ['-zu']},
@@ -400,6 +408,7 @@ const tests = [
{term: '死ぬ', source: '死にそう', rule: 'v5', reasons: ['-sou']},
{term: '死ぬ', source: '死にすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '死ぬ', source: '死にたい', rule: 'v5', reasons: ['-tai']},
+ {term: '死ぬ', source: '死にたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '死ぬ', source: '死んだら', rule: 'v5', reasons: ['-tara']},
{term: '死ぬ', source: '死んだり', rule: 'v5', reasons: ['-tari']},
{term: '死ぬ', source: '死なず', rule: 'v5', reasons: ['-zu']},
@@ -453,6 +462,7 @@ const tests = [
{term: '遊ぶ', source: '遊びそう', rule: 'v5', reasons: ['-sou']},
{term: '遊ぶ', source: '遊びすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '遊ぶ', source: '遊びたい', rule: 'v5', reasons: ['-tai']},
+ {term: '遊ぶ', source: '遊びたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '遊ぶ', source: '遊んだら', rule: 'v5', reasons: ['-tara']},
{term: '遊ぶ', source: '遊んだり', rule: 'v5', reasons: ['-tari']},
{term: '遊ぶ', source: '遊ばず', rule: 'v5', reasons: ['-zu']},
@@ -506,6 +516,7 @@ const tests = [
{term: '飲む', source: '飲みそう', rule: 'v5', reasons: ['-sou']},
{term: '飲む', source: '飲みすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '飲む', source: '飲みたい', rule: 'v5', reasons: ['-tai']},
+ {term: '飲む', source: '飲みたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '飲む', source: '飲んだら', rule: 'v5', reasons: ['-tara']},
{term: '飲む', source: '飲んだり', rule: 'v5', reasons: ['-tari']},
{term: '飲む', source: '飲まず', rule: 'v5', reasons: ['-zu']},
@@ -559,6 +570,7 @@ const tests = [
{term: '作る', source: '作りそう', rule: 'v5', reasons: ['-sou']},
{term: '作る', source: '作りすぎる', rule: 'v5', reasons: ['-sugiru']},
{term: '作る', source: '作りたい', rule: 'v5', reasons: ['-tai']},
+ {term: '作る', source: '作りたがる', rule: 'v5', reasons: ['-tai', '-garu']},
{term: '作る', source: '作ったら', rule: 'v5', reasons: ['-tara']},
{term: '作る', source: '作ったり', rule: 'v5', reasons: ['-tari']},
{term: '作る', source: '作らず', rule: 'v5', reasons: ['-zu']},
@@ -617,6 +629,7 @@ const tests = [
{term: '為る', source: '為そう', rule: 'vs', reasons: ['-sou']},
{term: '為る', source: '為すぎる', rule: 'vs', reasons: ['-sugiru']},
{term: '為る', source: '為たい', rule: 'vs', reasons: ['-tai']},
+ {term: '為る', source: '為たがる', rule: 'vs', reasons: ['-tai', '-garu']},
{term: '為る', source: '為たら', rule: 'vs', reasons: ['-tara']},
{term: '為る', source: '為たり', rule: 'vs', reasons: ['-tari']},
{term: '為る', source: '為ず', rule: 'vs', reasons: ['-zu']},
@@ -672,6 +685,7 @@ const tests = [
{term: 'する', source: 'しそう', rule: 'vs', reasons: ['-sou']},
{term: 'する', source: 'しすぎる', rule: 'vs', reasons: ['-sugiru']},
{term: 'する', source: 'したい', rule: 'vs', reasons: ['-tai']},
+ {term: 'する', source: 'したがる', rule: 'vs', reasons: ['-tai', '-garu']},
{term: 'する', source: 'したら', rule: 'vs', reasons: ['-tara']},
{term: 'する', source: 'したり', rule: 'vs', reasons: ['-tari']},
{term: 'する', source: 'せず', rule: 'vs', reasons: ['-zu']},
@@ -722,6 +736,7 @@ const tests = [
{term: '来る', source: '来そう', rule: 'vk', reasons: ['-sou']},
{term: '来る', source: '来すぎる', rule: 'vk', reasons: ['-sugiru']},
{term: '来る', source: '来たい', rule: 'vk', reasons: ['-tai']},
+ {term: '来る', source: '来たがる', rule: 'vk', reasons: ['-tai', '-garu']},
{term: '来る', source: '来たら', rule: 'vk', reasons: ['-tara']},
{term: '来る', source: '来たり', rule: 'vk', reasons: ['-tari']},
{term: '来る', source: '来ず', rule: 'vk', reasons: ['-zu']},
@@ -771,6 +786,7 @@ const tests = [
{term: '來る', source: '來そう', rule: 'vk', reasons: ['-sou']},
{term: '來る', source: '來すぎる', rule: 'vk', reasons: ['-sugiru']},
{term: '來る', source: '來たい', rule: 'vk', reasons: ['-tai']},
+ {term: '來る', source: '來たがる', rule: 'vk', reasons: ['-tai', '-garu']},
{term: '來る', source: '來たら', rule: 'vk', reasons: ['-tara']},
{term: '來る', source: '來たり', rule: 'vk', reasons: ['-tari']},
{term: '來る', source: '來ず', rule: 'vk', reasons: ['-zu']},
@@ -820,6 +836,7 @@ const tests = [
{term: 'くる', source: 'きそう', rule: 'vk', reasons: ['-sou']},
{term: 'くる', source: 'きすぎる', rule: 'vk', reasons: ['-sugiru']},
{term: 'くる', source: 'きたい', rule: 'vk', reasons: ['-tai']},
+ {term: 'くる', source: 'きたがる', rule: 'vk', reasons: ['-tai', '-garu']},
{term: 'くる', source: 'きたら', rule: 'vk', reasons: ['-tara']},
{term: 'くる', source: 'きたり', rule: 'vk', reasons: ['-tari']},
{term: 'くる', source: 'こず', rule: 'vk', reasons: ['-zu']},
@@ -881,6 +898,7 @@ const tests = [
{term: '論ずる', source: '論じそう', rule: 'vz', reasons: ['-sou']},
{term: '論ずる', source: '論じすぎる', rule: 'vz', reasons: ['-sugiru']},
{term: '論ずる', source: '論じたい', rule: 'vz', reasons: ['-tai']},
+ {term: '論ずる', source: '論じたがる', rule: 'vz', reasons: ['-tai', '-garu']},
{term: '論ずる', source: '論じたら', rule: 'vz', reasons: ['-tara']},
{term: '論ずる', source: '論じたり', rule: 'vz', reasons: ['-tari']},
{term: '論ずる', source: '論ぜず', rule: 'vz', reasons: ['-zu']},
@@ -1070,11 +1088,12 @@ const tests = [
]
},
{
- category: 'kawaii (this leads to infinite expansions)',
- valid: false,
+ category: 'kawaii',
+ valid: true,
tests: [
{term: 'かわいい', source: 'かわいげ', rule: 'adj-i', reasons: ['-ge']},
- {term: '可愛い', source: 'かわいげ', rule: 'adj-i', reasons: ['-ge']}
+ {term: '可愛い', source: '可愛げ', rule: 'adj-i', reasons: ['-ge']},
+ {term: '可愛い', source: '可愛気', rule: 'adj-i', reasons: ['-ge']}
]
},
{