372
test_prefix_1_row_multiterm (Fixture *fix, gconstpointer data)
374
DeeModelIter *iter, *result_iter;
375
DeeResultSet *results;
377
g_assert (dee_index_get_supported_term_match_flags (fix->index) &
378
DEE_TERM_MATCH_PREFIX);
380
iter = dee_model_append (fix->model, "To test this tremendous trouble", 27);
382
results = dee_index_lookup (fix->index, "to", DEE_TERM_MATCH_PREFIX);
383
g_assert_cmpint (dee_result_set_get_n_rows (results), ==, 1);
384
result_iter = dee_result_set_next (results);
385
g_assert (iter == result_iter);
386
g_object_unref (results);
388
results = dee_index_lookup (fix->index, "t", DEE_TERM_MATCH_PREFIX);
389
g_assert_cmpint (dee_result_set_get_n_rows (results), ==, 1);
390
result_iter = dee_result_set_next (results);
391
g_assert (iter == result_iter);
392
g_object_unref (results);
396
test_prefix_2_rows (Fixture *fix, gconstpointer data)
398
DeeModelIter *iter, *i0, *i1;
399
DeeResultSet *results;
401
g_assert (dee_index_get_supported_term_match_flags (fix->index) &
402
DEE_TERM_MATCH_PREFIX);
404
i0 = dee_model_append (fix->model, "Caravan scrap yard", 0);
405
i1 = dee_model_append (fix->model, "Scraper foo", 1);
407
/* NOTE: We can NOT infer anything about the ordering of the matching
408
* iters inside a single term */
409
results = dee_index_lookup (fix->index, "scrap", DEE_TERM_MATCH_PREFIX);
410
g_assert_cmpint (dee_result_set_get_n_rows (results), ==, 2);
411
iter = dee_result_set_next (results);
412
g_assert (iter == i0 || iter == i1);
413
iter = dee_result_set_next (results);
414
g_assert (iter == i0 || iter == i1);
415
g_object_unref (results);
417
results = dee_index_lookup (fix->index, "scra", DEE_TERM_MATCH_PREFIX);
418
g_assert_cmpint (dee_result_set_get_n_rows (results), ==, 2);
419
iter = dee_result_set_next (results);
420
g_assert (iter == i0 || iter == i1);
421
iter = dee_result_set_next (results);
422
g_assert (iter == i0 || iter == i1);
423
g_object_unref (results);
425
results = dee_index_lookup (fix->index, "scraper", DEE_TERM_MATCH_PREFIX);
426
g_assert_cmpint (dee_result_set_get_n_rows (results), ==, 1);
427
iter = dee_result_set_next (results);
428
g_assert (iter == i1);
429
g_object_unref (results);
431
results = dee_index_lookup (fix->index, "scraperer", DEE_TERM_MATCH_PREFIX);
432
g_assert_cmpint (dee_result_set_get_n_rows (results), ==, 0);
433
g_object_unref (results);
372
437
test_prefix_3_rows (Fixture *fix, gconstpointer data)
374
439
DeeModelIter *iter, *i0, *i1;
470
536
setup_text_tree, test_text_with_dupe_terms_per_row, teardown);
471
537
g_test_add ("/Index/Tree/Prefix1Row", Fixture, 0,
472
538
setup_text_tree, test_prefix_1_row, teardown);
539
g_test_add ("/Index/Tree/Prefix1RowMultiterm", Fixture, 0,
540
setup_text_tree, test_prefix_1_row_multiterm, teardown);
541
g_test_add ("/Index/Tree/Prefix2Rows", Fixture, 0,
542
setup_text_tree, test_prefix_2_rows, teardown);
473
543
g_test_add ("/Index/Tree/Prefix3Rows", Fixture, 0,
474
544
setup_text_tree, test_prefix_3_rows, teardown);
475
545
g_test_add ("/Index/Tree/Prefix4RowsAndClear", Fixture, 0,