diff options
| author | Douglas Rumbaugh <dbr4@psu.edu> | 2023-06-05 14:25:19 -0400 |
|---|---|---|
| committer | Douglas Rumbaugh <dbr4@psu.edu> | 2023-06-05 14:25:19 -0400 |
| commit | d47eeea719448f649e93b6a9ec7593b4cb2fb40e (patch) | |
| tree | 0880f4c5b2c2881adb5dce5afa8474b6ccd54450 /tests/pgm_tests.cpp | |
| parent | 79b5e0b630ee9f53535fc8469e450024af7439e1 (diff) | |
| download | dynamic-extension-d47eeea719448f649e93b6a9ec7593b4cb2fb40e.tar.gz | |
Added TrieSpline and PGM Range queries + tests and bugfixes
Diffstat (limited to 'tests/pgm_tests.cpp')
| -rw-r--r-- | tests/pgm_tests.cpp | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/tests/pgm_tests.cpp b/tests/pgm_tests.cpp index 33979ae..254de03 100644 --- a/tests/pgm_tests.cpp +++ b/tests/pgm_tests.cpp @@ -139,6 +139,60 @@ START_TEST(t_point_lookup_miss) } +START_TEST(t_range_query) +{ + auto buffer = create_sequential_mbuffer<Rec>(100, 1000); + auto shard = Shard(buffer); + + pgm_range_query_parms<Rec> parms; + parms.lower_bound = 300; + parms.upper_bound = 500; + + auto state = PGMRangeQuery<Rec>::get_query_state(&shard, &parms); + auto result = PGMRangeQuery<Rec>::query(&shard, state, &parms); + PGMRangeQuery<Rec>::delete_query_state(state); + + ck_assert_int_eq(result.size(), parms.upper_bound - parms.lower_bound + 1); + for (size_t i=0; i<result.size(); i++) { + ck_assert_int_le(result[i].rec.key, parms.upper_bound); + ck_assert_int_ge(result[i].rec.key, parms.lower_bound); + } + + delete buffer; +} +END_TEST + + +START_TEST(t_buffer_range_query) +{ + auto buffer = create_sequential_mbuffer<Rec>(100, 1000); + + pgm_range_query_parms<Rec> parms; + parms.lower_bound = 300; + parms.upper_bound = 500; + + auto state = PGMRangeQuery<Rec>::get_buffer_query_state(buffer, &parms); + auto result = PGMRangeQuery<Rec>::buffer_query(buffer, state, &parms); + PGMRangeQuery<Rec>::delete_buffer_query_state(state); + + ck_assert_int_eq(result.size(), parms.upper_bound - parms.lower_bound + 1); + for (size_t i=0; i<result.size(); i++) { + ck_assert_int_le(result[i].rec.key, parms.upper_bound); + ck_assert_int_ge(result[i].rec.key, parms.lower_bound); + } + + delete buffer; +} +END_TEST + + +START_TEST(t_range_query_merge) +{ + +} +END_TEST + + START_TEST(t_full_cancelation) { size_t n = 100; @@ -190,6 +244,11 @@ Suite *unit_testing() tcase_add_test(lookup, t_point_lookup_miss); suite_add_tcase(unit, lookup); + TCase *range_query = tcase_create("de:PGM::range_query Testing"); + tcase_add_test(range_query, t_range_query); + tcase_add_test(range_query, t_buffer_range_query); + tcase_add_test(range_query, t_range_query_merge); + suite_add_tcase(unit, range_query); return unit; } |