1 Commits

Author SHA1 Message Date
oysteikt 2c6894aa82 WIP
Run tests / evals (push) Failing after 8m24s
Build database / evals (push) Failing after 8m24s
2026-06-10 12:56:54 +09:00
8 changed files with 119 additions and 6 deletions
+7
View File
@@ -0,0 +1,7 @@
import './search/english_word_search.dart';
import './search/japanese_word_search.dart';
Future<void> main() async {
await EnglishWordSearchBenchmark.main();
await JapaneseWordSearchBenchmark.main();
}
+49
View File
@@ -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 EnglishWordSearchBenchmark extends AsyncBenchmarkBase {
Database? connection;
static final List<String> searchTerms = [
'kana',
'kanji',
'cute',
'sushi',
'ramen',
];
EnglishWordSearchBenchmark() : super('EnglishWordSearchBenchmark');
static Future<void> main() async {
print('Running EnglishWordSearchBenchmark...');
await EnglishWordSearchBenchmark().report();
print('Finished EnglishWordSearchBenchmark');
}
@override
Future<void> setup() async {
connection = await setup_database_connection();
}
@override
Future<void> run() async {
for (final term in searchTerms) {
final result = await connection!.jadbSearchWord(term);
assert(
result?.isNotEmpty ?? false,
'Expected search results for term "$term"',
);
}
}
@override
Future<void> teardown() async {
await connection?.close();
}
// @override
// Future<void> exercise() => run();
}
@@ -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 JapaneseWordSearchBenchmark extends AsyncBenchmarkBase {
Database? connection;
static final List<String> searchTerms = [
'仮名',
'漢字',
'かわいい',
'すし',
'ラメン',
];
JapaneseWordSearchBenchmark() : super('JapaneseWordSearchBenchmark');
static Future<void> main() async {
print('Running JapaneseWordSearchBenchmark...');
await JapaneseWordSearchBenchmark().report();
print('Finished JapaneseWordSearchBenchmark');
}
@override
Future<void> setup() async {
connection = await setup_database_connection();
}
@override
Future<void> run() async {
for (final term in searchTerms) {
final result = await connection!.jadbSearchWord(term);
assert(
result?.isNotEmpty ?? false,
'Expected search results for term "$term"',
);
}
}
@override
Future<void> teardown() async {
await connection?.close();
}
// @override
// Future<void> exercise() => run();
}
Generated
+3 -3
View File
@@ -3,7 +3,7 @@
"jmdict-src": {
"flake": false,
"locked": {
"narHash": "sha256-lh46uougUzBrRhhwa7cOb32j5Jt9/RjBUhlVjwVzsII=",
"narHash": "sha256-RQuZqSv5aqSKOpI3ajQAR5y/kobLTBOg1t2wOhZsr1g=",
"type": "file",
"url": "http://ftp.edrdg.org/pub/Nihongo/JMdict_e.gz"
},
@@ -15,7 +15,7 @@
"jmdict-with-examples-src": {
"flake": false,
"locked": {
"narHash": "sha256-5oS2xDyetbuSM6ax3LUjYA3N60x+D3Hg41HEXGFMqLQ=",
"narHash": "sha256-11iYyz3Uf6QzM9l5DcSB+IdLaq+XOGe5zilVPc1GY14=",
"type": "file",
"url": "http://ftp.edrdg.org/pub/Nihongo/JMdict_e_examp.gz"
},
@@ -27,7 +27,7 @@
"kanjidic2-src": {
"flake": false,
"locked": {
"narHash": "sha256-orSeQqSxhn9TtX3anYtbiMEm7nFkuomGnIKoVIUR2CM=",
"narHash": "sha256-tLQYQf0/C6yaW+QRq6/Uyy8rq+v3+yKLZXuznRnbkrQ=",
"type": "file",
"url": "https://www.edrdg.org/kanjidic/kanjidic2.xml.gz"
},
+1
View File
@@ -87,6 +87,7 @@
sqlfluff
];
env = {
LD_LIBRARY_PATH = "${pkgs.sqlite.out}/lib";
LIBSQLITE_PATH = "${pkgs.sqlite.out}/lib/libsqlite3.so";
JADB_PATH = "result/jadb.sqlite";
};
+1 -3
View File
@@ -211,11 +211,9 @@ Future<List<ScoredEntryId>> _queryEnglish(
ORDER BY
"score" DESC,
"${JMdictTableNames.sense}"."entryId" ASC
LIMIT ?
OFFSET ?
'''
.trim(),
[word, word, word, '%${word.replaceAll('%', '')}%', pageSize, offset],
[word, word, word, '%${word.replaceAll('%', '')}%'],
);
return result
+8
View File
@@ -33,6 +33,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.13.0"
benchmark_harness:
dependency: "direct dev"
description:
name: benchmark_harness
sha256: a2d3c4c83cac0126bf38e41eaf7bd9ed4f6635f1ee1a0cbc6f79fa9736c62cbd
url: "https://pub.dev"
source: hosted
version: "2.4.0"
boolean_selector:
dependency: transitive
description:
+1
View File
@@ -18,6 +18,7 @@ dependencies:
xml: ^6.5.0
dev_dependencies:
benchmark_harness: ^2.4.0
lints: ^6.0.0
test: ^1.25.15