Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
2c6894aa82
|
@@ -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();
|
||||
}
|
||||
@@ -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
@@ -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"
|
||||
},
|
||||
|
||||
@@ -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";
|
||||
};
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -18,6 +18,7 @@ dependencies:
|
||||
xml: ^6.5.0
|
||||
|
||||
dev_dependencies:
|
||||
benchmark_harness: ^2.4.0
|
||||
lints: ^6.0.0
|
||||
test: ^1.25.15
|
||||
|
||||
|
||||
Reference in New Issue
Block a user