diff options
| -rw-r--r-- | ext/data/deinflect.json | 4 | ||||
| -rw-r--r-- | test/test-deinflector.js | 16 | 
2 files changed, 20 insertions, 0 deletions
| diff --git a/ext/data/deinflect.json b/ext/data/deinflect.json index ac247ae6..00775627 100644 --- a/ext/data/deinflect.json +++ b/ext/data/deinflect.json @@ -49,6 +49,10 @@          {"kanaIn": "来ちまう", "kanaOut": "来る", "rulesIn": ["v5"], "rulesOut": ["vk"]},          {"kanaIn": "來ちまう", "kanaOut": "來る", "rulesIn": ["v5"], "rulesOut": ["vk"]}      ], +    "-shimau": [ +        {"kanaIn": "てしまう", "kanaOut": "て", "rulesIn": ["v5"], "rulesOut": ["iru"]}, +        {"kanaIn": "でしまう", "kanaOut": "で", "rulesIn": ["v5"], "rulesOut": ["iru"]} +    ],      "-nasai": [          {"kanaIn": "なさい", "kanaOut": "る", "rulesIn": [], "rulesOut": ["v1"]},          {"kanaIn": "いなさい", "kanaOut": "う", "rulesIn": [], "rulesOut": ["v5"]}, diff --git a/test/test-deinflector.js b/test/test-deinflector.js index 9c3d33c8..d4faf025 100644 --- a/test/test-deinflector.js +++ b/test/test-deinflector.js @@ -110,6 +110,7 @@ function testDeinflections() {                  {term: '食べる', source: '食べておる',       rule: 'v1', reasons: ['-te', 'progressive or perfect']},                  {term: '食べる', source: '食べてる',         rule: 'v1', reasons: ['-te', 'progressive or perfect']},                  {term: '食べる', source: '食べとる',         rule: 'v1', reasons: ['-te', 'progressive or perfect']}, +                {term: '食べる', source: '食べてしまう',     rule: 'v1', reasons: ['-te', '-shimau']},                  {term: '買う', source: '買う',             rule: 'v5', reasons: []},                  {term: '買う', source: '買います',         rule: 'v5', reasons: ['polite']}, @@ -152,6 +153,7 @@ function testDeinflections() {                  {term: '買う', source: '買っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '買う', source: '買ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '買う', source: '買っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '買う', source: '買ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '行く', source: '行く',             rule: 'v5', reasons: []},                  {term: '行く', source: '行きます',         rule: 'v5', reasons: ['polite']}, @@ -194,6 +196,7 @@ function testDeinflections() {                  {term: '行く', source: '行っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '行く', source: '行ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '行く', source: '行っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '行く', source: '行ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '泳ぐ', source: '泳ぐ',             rule: 'v5', reasons: []},                  {term: '泳ぐ', source: '泳ぎます',         rule: 'v5', reasons: ['polite']}, @@ -235,6 +238,7 @@ function testDeinflections() {                  {term: '泳ぐ', source: '泳いでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '泳ぐ', source: '泳いでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '泳ぐ', source: '泳いでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '泳ぐ', source: '泳いでしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '話す', source: '話す',             rule: 'v5', reasons: []},                  {term: '話す', source: '話します',         rule: 'v5', reasons: ['polite']}, @@ -277,6 +281,7 @@ function testDeinflections() {                  {term: '話す', source: '話しておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '話す', source: '話してる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '話す', source: '話しとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '話す', source: '話してしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '待つ', source: '待つ',             rule: 'v5', reasons: []},                  {term: '待つ', source: '待ちます',         rule: 'v5', reasons: ['polite']}, @@ -319,6 +324,7 @@ function testDeinflections() {                  {term: '待つ', source: '待っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '待つ', source: '待ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '待つ', source: '待っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '待つ', source: '待ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '死ぬ', source: '死ぬ',             rule: 'v5', reasons: []},                  {term: '死ぬ', source: '死にます',         rule: 'v5', reasons: ['polite']}, @@ -360,6 +366,7 @@ function testDeinflections() {                  {term: '死ぬ', source: '死んでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '死ぬ', source: '死んでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '死ぬ', source: '死んでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '死ぬ', source: '死んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '遊ぶ', source: '遊ぶ',             rule: 'v5', reasons: []},                  {term: '遊ぶ', source: '遊びます',         rule: 'v5', reasons: ['polite']}, @@ -401,6 +408,7 @@ function testDeinflections() {                  {term: '遊ぶ', source: '遊んでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '遊ぶ', source: '遊んでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '遊ぶ', source: '遊んでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '遊ぶ', source: '遊んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '飲む', source: '飲む',             rule: 'v5', reasons: []},                  {term: '飲む', source: '飲みます',         rule: 'v5', reasons: ['polite']}, @@ -442,6 +450,7 @@ function testDeinflections() {                  {term: '飲む', source: '飲んでいる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '飲む', source: '飲んでおる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '飲む', source: '飲んでる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '飲む', source: '飲んでしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  {term: '作る', source: '作る',             rule: 'v5', reasons: []},                  {term: '作る', source: '作ります',         rule: 'v5', reasons: ['polite']}, @@ -484,6 +493,7 @@ function testDeinflections() {                  {term: '作る', source: '作っておる',       rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '作る', source: '作ってる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']},                  {term: '作る', source: '作っとる',         rule: 'v5', reasons: ['-te', 'progressive or perfect']}, +                {term: '作る', source: '作ってしまう',     rule: 'v5', reasons: ['-te', '-shimau']},                  // Irregular verbs                  {term: '為る', source: '為る',           rule: 'vs', reasons: []}, @@ -531,6 +541,7 @@ function testDeinflections() {                  {term: '為る', source: '為ておる',       rule: 'vs', reasons: ['-te', 'progressive or perfect']},                  {term: '為る', source: '為てる',         rule: 'vs', reasons: ['-te', 'progressive or perfect']},                  {term: '為る', source: '為とる',         rule: 'vs', reasons: ['-te', 'progressive or perfect']}, +                {term: '為る', source: '為てしまう',     rule: 'vs', reasons: ['-te', '-shimau']},                  {term: 'する', source: 'する',           rule: 'vs', reasons: []},                  {term: 'する', source: 'します',         rule: 'vs', reasons: ['polite']}, @@ -577,6 +588,7 @@ function testDeinflections() {                  {term: 'する', source: 'しておる',       rule: 'vs', reasons: ['-te', 'progressive or perfect']},                  {term: 'する', source: 'してる',         rule: 'vs', reasons: ['-te', 'progressive or perfect']},                  {term: 'する', source: 'しとる',         rule: 'vs', reasons: ['-te', 'progressive or perfect']}, +                {term: 'する', source: 'してしまう',     rule: 'vs', reasons: ['-te', '-shimau']},                  {term: '来る', source: '来る',           rule: 'vk', reasons: []},                  {term: '来る', source: '来ます',         rule: 'vk', reasons: ['polite']}, @@ -619,6 +631,7 @@ function testDeinflections() {                  {term: '来る', source: '来ておる',       rule: 'vk', reasons: ['-te', 'progressive or perfect']},                  {term: '来る', source: '来てる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']},                  {term: '来る', source: '来とる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']}, +                {term: '来る', source: '来てしまう',     rule: 'vk', reasons: ['-te', '-shimau']},                  {term: '來る', source: '來る',           rule: 'vk', reasons: []},                  {term: '來る', source: '來ます',         rule: 'vk', reasons: ['polite']}, @@ -661,6 +674,7 @@ function testDeinflections() {                  {term: '來る', source: '來ておる',       rule: 'vk', reasons: ['-te', 'progressive or perfect']},                  {term: '來る', source: '來てる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']},                  {term: '來る', source: '來とる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']}, +                {term: '來る', source: '來てしまう',     rule: 'vk', reasons: ['-te', '-shimau']},                  {term: 'くる', source: 'くる',           rule: 'vk', reasons: []},                  {term: 'くる', source: 'きます',         rule: 'vk', reasons: ['polite']}, @@ -703,6 +717,7 @@ function testDeinflections() {                  {term: 'くる', source: 'きておる',       rule: 'vk', reasons: ['-te', 'progressive or perfect']},                  {term: 'くる', source: 'きてる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']},                  {term: 'くる', source: 'きとる',         rule: 'vk', reasons: ['-te', 'progressive or perfect']}, +                {term: 'くる', source: 'きてしまう',     rule: 'vk', reasons: ['-te', '-shimau']},                  // Zuru verbs                  {term: '論ずる', source: '論ずる',           rule: 'vz', reasons: []}, @@ -753,6 +768,7 @@ function testDeinflections() {                  {term: '論ずる', source: '論じておる',       rule: 'vz', reasons: ['-te', 'progressive or perfect']},                  {term: '論ずる', source: '論じてる',         rule: 'vz', reasons: ['-te', 'progressive or perfect']},                  {term: '論ずる', source: '論じとる',         rule: 'vz', reasons: ['-te', 'progressive or perfect']}, +                {term: '論ずる', source: '論じてしまう',     rule: 'vz', reasons: ['-te', '-shimau']},                  // Uncommon irregular verbs                  {term: 'のたまう', source: 'のたもうて',   rule: 'v5', reasons: ['-te']}, |