benchmark: add fuzzy/non-fuzzy variants of jp word search
Build and test / build (push) Successful in 9m53s

This commit is contained in:
2026-06-09 11:38:02 +09:00
parent 0e32fbaeb1
commit 8ba7c66e67
3 changed files with 52 additions and 1 deletions
+2
View File
@@ -1,7 +1,9 @@
import './search/english_word_search.dart';
import './search/japanese_word_search.dart';
import 'search/japanese_word_search_fuzzy.dart';
Future<void> main() async {
await EnglishWordSearchBenchmark.main();
await JapaneseWordSearchBenchmark.main();
await JapaneseWordSearchBenchmarkFuzzy.main();
}
+1 -1
View File
@@ -31,7 +31,7 @@ class JapaneseWordSearchBenchmark extends AsyncBenchmarkBase {
@override
Future<void> 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"',
@@ -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<String> searchTerms = [
'仮名',
'漢字',
'かわいい',
'すし',
'ラメン',
];
JapaneseWordSearchBenchmarkFuzzy() : super('JapaneseWordSearchBenchmarkFuzzy');
static Future<void> main() async {
print('Running JapaneseWordSearchBenchmark...');
await JapaneseWordSearchBenchmarkFuzzy().report();
print('Finished JapaneseWordSearchBenchmark');
}
@override
Future<void> setup() async {
connection = await setupDatabaseConnection();
}
@override
Future<void> 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<void> teardown() async {
await connection?.close();
}
// @override
// Future<void> exercise() => run();
}