diff options
| -rw-r--r-- | benches/language-transformer.bench.js | 254 | 
1 files changed, 186 insertions, 68 deletions
| diff --git a/benches/language-transformer.bench.js b/benches/language-transformer.bench.js index 9d312fb7..8212ae86 100644 --- a/benches/language-transformer.bench.js +++ b/benches/language-transformer.bench.js @@ -29,76 +29,194 @@ const descriptor = parseJson(fs.readFileSync(path.join(dirname, '..', 'ext', 'da  const languageTransformer = new LanguageTransformer();  languageTransformer.addDescriptor(descriptor); -describe('Language transformer basic tests', () => { -    const adjectiveInflections = [ -        '愛しい', -        '愛しそう', -        '愛しすぎる', -        '愛しかったら', -        '愛しかったり', -        '愛しくて', -        '愛しく', -        '愛しくない', -        '愛しさ', -        '愛しかった', -        '愛しくありません', -        '愛しくありませんでした', -        '愛しき' -    ]; +describe('language transformer', () => { +    describe('basic tests', () => { +        const adjectiveInflections = [ +            '愛しい', +            '愛しそう', +            '愛しすぎる', +            '愛しかったら', +            '愛しかったり', +            '愛しくて', +            '愛しく', +            '愛しくない', +            '愛しさ', +            '愛しかった', +            '愛しくありません', +            '愛しくありませんでした', +            '愛しき' +        ]; -    const verbInflections = [ -        '食べる', -        '食べます', -        '食べた', -        '食べました', -        '食べて', -        '食べられる', -        '食べられる', -        '食べさせる', -        '食べさせられる', -        '食べろ', -        '食べない', -        '食べません', -        '食べなかった', -        '食べませんでした', -        '食べなくて', -        '食べられない', -        '食べられない', -        '食べさせない', -        '食べさせられない', -        '食べ', -        '食べれば', -        '食べちゃう', -        '食べちまう', -        '食べなさい', -        '食べそう', -        '食べすぎる', -        '食べたい', -        '食べたら', -        '食べたり', -        '食べず', -        '食べぬ', -        '食べ', -        '食べましょう', -        '食べよう', -        '食べとく', -        '食べている', -        '食べておる', -        '食べてる', -        '食べとる', -        '食べてしまう' -    ]; +        const verbInflections = [ +            '食べる', +            '食べます', +            '食べた', +            '食べました', +            '食べて', +            '食べられる', +            '食べられる', +            '食べさせる', +            '食べさせられる', +            '食べろ', +            '食べない', +            '食べません', +            '食べなかった', +            '食べませんでした', +            '食べなくて', +            '食べられない', +            '食べられない', +            '食べさせない', +            '食べさせられない', +            '食べ', +            '食べれば', +            '食べちゃう', +            '食べちまう', +            '食べなさい', +            '食べそう', +            '食べすぎる', +            '食べたい', +            '食べたら', +            '食べたり', +            '食べず', +            '食べぬ', +            '食べ', +            '食べましょう', +            '食べよう', +            '食べとく', +            '食べている', +            '食べておる', +            '食べてる', +            '食べとる', +            '食べてしまう' +        ]; -    const inflectionCombinations = [ -        '抱き抱えていなければ', -        '抱きかかえていなければ', -        '打ち込んでいませんでした', -        '食べさせられたくなかった' -    ]; +        const inflectionCombinations = [ +            '抱き抱えていなければ', +            '抱きかかえていなければ', +            '打ち込んでいませんでした', +            '食べさせられたくなかった' +        ]; -    bench('transformations', () => { -        for (const transform of [...adjectiveInflections, ...verbInflections, ...inflectionCombinations]) { -            languageTransformer.transform(transform); -        } +        const kuruInflections = [ +            'くる', +            'きます', +            'きた', +            'きました', +            'きて', +            'こられる', +            'こられる', +            'こさせる', +            'こさせられる', +            'こい', +            'こない', +            'きません', +            'こなかった', +            'きませんでした', +            'こなくて', +            'こられない', +            'こられない', +            'こさせない', +            'こさせられない', +            'くるな', +            'きまして', +            'くれば', +            'きちゃう', +            'きちまう', +            'きなさい', +            'きそう', +            'きすぎる', +            'きたい', +            'きたら', +            'きたり', +            'こず', +            'こぬ', +            'こざる', +            'こねば', +            'き', +            'きましょう', +            'こよう', +            'きとく', +            'きている', +            'きておる', +            'きてる', +            'きとる', +            'きてしまう' +        ]; + +        const suruInflections = [ +            'する', +            'します', +            'した', +            'しました', +            'して', +            'できる', +            '出来る', +            'せられる', +            'される', +            'させる', +            'せさせる', +            'させられる', +            'せさせられる', +            'しろ', +            'しない', +            'しません', +            'しなかった', +            'しませんでした', +            'しなくて', +            'せられない', +            'されない', +            'させない', +            'せさせない', +            'させられない', +            'せさせられない', +            'するな', +            'しまして', +            'すれば', +            'しちゃう', +            'しちまう', +            'しなさい', +            'しそう', +            'しすぎる', +            'したい', +            'したら', +            'したり', +            'せず', +            'せぬ', +            'せざる', +            'せねば', +            'しましょう', +            'しよう', +            'しとく', +            'している', +            'しておる', +            'してる', +            'しとる', +            'してしまう' +        ]; + +        const kansaibenInflections = [ +            'よろしゅう', +            'よろしゅうて', +            'よろしゅうない', +            '買わへん', +            '買わへんかった', +            '買うて', +            '買うた', +            '買うたら' +        ]; + +        const basicTransformations = [...adjectiveInflections, ...verbInflections, ...inflectionCombinations]; +        bench(`transformations (n=${basicTransformations.length})`, () => { +            for (const transform of basicTransformations) { +                languageTransformer.transform(transform); +            } +        }); + +        const transformationsFull = [...basicTransformations, ...kuruInflections, ...suruInflections, ...kansaibenInflections]; +        bench(`transformations-full (n=${transformationsFull.length})`, () => { +            for (const transform of transformationsFull) { +                languageTransformer.transform(transform); +            } +        });      });  }); |