diff --git a/benchmark/benchmark.dart b/benchmark/benchmark.dart index 85c9b37..71f3c3f 100644 --- a/benchmark/benchmark.dart +++ b/benchmark/benchmark.dart @@ -1,5 +1,7 @@ -import './search/word_search.dart'; +import './search/english_word_search.dart'; +import './search/japanese_word_search.dart'; Future main() async { - await WordSearchBenchmark.main(); + await EnglishWordSearchBenchmark.main(); + await JapaneseWordSearchBenchmark.main(); } diff --git a/benchmark/search/word_search.dart b/benchmark/search/english_word_search.dart similarity index 59% rename from benchmark/search/word_search.dart rename to benchmark/search/english_word_search.dart index a0e045a..cccbf24 100644 --- a/benchmark/search/word_search.dart +++ b/benchmark/search/english_word_search.dart @@ -4,23 +4,23 @@ import 'package:sqflite_common/sqlite_api.dart'; import '../../test/search/setup_database_connection.dart'; -class WordSearchBenchmark extends AsyncBenchmarkBase { +class EnglishWordSearchBenchmark extends AsyncBenchmarkBase { Database? connection; static final List searchTerms = [ 'kana', 'kanji', - 'kawaii', + 'cute', 'sushi', 'ramen', ]; - WordSearchBenchmark() : super('WordSearchBenchmark'); + EnglishWordSearchBenchmark() : super('EnglishWordSearchBenchmark'); static Future main() async { - print('Running WordSearchBenchmark...'); - await WordSearchBenchmark().report(); - print('Finished WordSearchBenchmark'); + print('Running EnglishWordSearchBenchmark...'); + await EnglishWordSearchBenchmark().report(); + print('Finished EnglishWordSearchBenchmark'); } @override @@ -31,7 +31,11 @@ class WordSearchBenchmark extends AsyncBenchmarkBase { @override Future run() async { for (final term in searchTerms) { - await connection!.jadbSearchWord(term); + final result = await connection!.jadbSearchWord(term); + assert( + result?.isNotEmpty ?? false, + 'Expected search results for term "$term"', + ); } } diff --git a/benchmark/search/japanese_word_search.dart b/benchmark/search/japanese_word_search.dart new file mode 100644 index 0000000..6511c57 --- /dev/null +++ b/benchmark/search/japanese_word_search.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 JapaneseWordSearchBenchmark extends AsyncBenchmarkBase { + Database? connection; + + static final List searchTerms = [ + '仮名', + '漢字', + 'かわいい', + 'すし', + 'ラメン', + ]; + + JapaneseWordSearchBenchmark() : super('JapaneseWordSearchBenchmark'); + + static Future main() async { + print('Running JapaneseWordSearchBenchmark...'); + await JapaneseWordSearchBenchmark().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); + assert( + result?.isNotEmpty ?? false, + 'Expected search results for term "$term"', + ); + } + } + + @override + Future teardown() async { + await connection?.close(); + } + + // @override + // Future exercise() => run(); +}