From 356adeb2dc482de3eee9af8ea116095c3a2d0d42 Mon Sep 17 00:00:00 2001 From: Cashew <52880648+Scrub1492@users.noreply.github.com> Date: Wed, 7 Feb 2024 17:32:23 +0700 Subject: Bench updates (#649) * update bench * add bench --- benches/language-transformer.bench.js | 254 +++++++++++++++++++++++++--------- 1 file 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); + } + }); }); }); -- cgit v1.2.3