From 8ba7c66e67510835139c92655f8b94995083d780 Mon Sep 17 00:00:00 2001 From: h7x4 Date: Tue, 9 Jun 2026 11:38:02 +0900 Subject: [PATCH] benchmark: add fuzzy/non-fuzzy variants of jp word search --- benchmark/benchmark.dart | 2 + benchmark/search/japanese_word_search.dart | 2 +- .../search/japanese_word_search_fuzzy.dart | 49 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 benchmark/search/japanese_word_search_fuzzy.dart diff --git a/benchmark/benchmark.dart b/benchmark/benchmark.dart index 71f3c3f..ea4c3b4 100644 --- a/benchmark/benchmark.dart +++ b/benchmark/benchmark.dart @@ -1,7 +1,9 @@ import './search/english_word_search.dart'; import './search/japanese_word_search.dart'; +import 'search/japanese_word_search_fuzzy.dart'; Future main() async { await EnglishWordSearchBenchmark.main(); await JapaneseWordSearchBenchmark.main(); + await JapaneseWordSearchBenchmarkFuzzy.main(); } diff --git a/benchmark/search/japanese_word_search.dart b/benchmark/search/japanese_word_search.dart index 6511c57..4baa380 100644 --- a/benchmark/search/japanese_word_search.dart +++ b/benchmark/search/japanese_word_search.dart @@ -31,7 +31,7 @@ class JapaneseWordSearchBenchmark extends AsyncBenchmarkBase { @override Future run() async { for (final term in searchTerms) { - final result = await connection!.jadbSearchWord(term); + final result = await connection!.jadbSearchWord(term, fuzzyKana: false); assert( result?.isNotEmpty ?? false, 'Expected search results for term "$term"', diff --git a/benchmark/search/japanese_word_search_fuzzy.dart b/benchmark/search/japanese_word_search_fuzzy.dart new file mode 100644 index 0000000..6512eca --- /dev/null +++ b/benchmark/search/japanese_word_search_fuzzy.dart @@ -0,0 +1,49 @@ +import 'package:benchmark_harness/benchmark_harness.dart'; +import 'package:jadb/search.dart'; +import 'package:sqflite_common/sqlite_api.dart'; + +import '../../test/search/setup_database_connection.dart'; + +class JapaneseWordSearchBenchmarkFuzzy extends AsyncBenchmarkBase { + Database? connection; + + static final List searchTerms = [ + '仮名', + '漢字', + 'かわいい', + 'すし', + 'ラメン', + ]; + + JapaneseWordSearchBenchmarkFuzzy() : super('JapaneseWordSearchBenchmarkFuzzy'); + + static Future main() async { + print('Running JapaneseWordSearchBenchmark...'); + await JapaneseWordSearchBenchmarkFuzzy().report(); + print('Finished JapaneseWordSearchBenchmark'); + } + + @override + Future setup() async { + connection = await setupDatabaseConnection(); + } + + @override + Future run() async { + for (final term in searchTerms) { + final result = await connection!.jadbSearchWord(term, fuzzyKana: true); + assert( + result?.isNotEmpty ?? false, + 'Expected search results for term "$term"', + ); + } + } + + @override + Future teardown() async { + await connection?.close(); + } + + // @override + // Future exercise() => run(); +}