From 8ecf203a77a897b25af084ceefd82023bfcc1c35 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 3 Jul 2023 12:26:52 -0400 Subject: PGM Tests: added proper testing for query merging --- tests/pgm_tests.cpp | 46 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 45 insertions(+), 1 deletion(-) diff --git a/tests/pgm_tests.cpp b/tests/pgm_tests.cpp index 80116d4..d21980a 100644 --- a/tests/pgm_tests.cpp +++ b/tests/pgm_tests.cpp @@ -187,8 +187,52 @@ END_TEST START_TEST(t_range_query_merge) -{ +{ + auto buffer1 = create_sequential_mbuffer(100, 200); + auto buffer2 = create_sequential_mbuffer(400, 1000); + + auto shard1 = Shard(buffer1); + auto shard2 = Shard(buffer2); + + pgm_range_query_parms parms; + parms.lower_bound = 300; + parms.upper_bound = 500; + + auto state1 = PGMRangeQuery::get_query_state(&shard1, &parms); + auto state2 = PGMRangeQuery::get_query_state(&shard2, &parms); + + std::vector>> results(2); + results[0] = PGMRangeQuery::query(&shard1, state1, &parms); + results[1] = PGMRangeQuery::query(&shard2, state2, &parms); + + PGMRangeQuery::delete_query_state(state1); + PGMRangeQuery::delete_query_state(state2); + + ck_assert_int_eq(results[0].size() + results[1].size(), 101); + + std::vector> proc_results; + + auto key = 400; + for (size_t j=0; j()); + for (size_t i=0; i::merge(proc_results); + std::sort(result.begin(), result.end()); + + ck_assert_int_eq(result.size(), 101); + key = 400; + for (size_t i=0; i