From 59ab2a92a5902b25fbc227bab549eb6f2dd84486 Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 5 Jun 2023 11:46:13 -0400 Subject: Added point-lookup tests for WIRS and WSS --- tests/memisam_tests.cpp | 1 + tests/wirs_tests.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ tests/wss_tests.cpp | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 101 insertions(+) (limited to 'tests') diff --git a/tests/memisam_tests.cpp b/tests/memisam_tests.cpp index dd4ce72..aaf0b51 100644 --- a/tests/memisam_tests.cpp +++ b/tests/memisam_tests.cpp @@ -348,6 +348,7 @@ Suite *unit_testing() tcase_add_test(tombstone, t_full_cancelation); suite_add_tcase(unit, tombstone); + TCase *lookup = tcase_create("de:MemISAM:point_lookup Testing"); tcase_add_test(lookup, t_point_lookup); tcase_add_test(lookup, t_point_lookup_miss); diff --git a/tests/wirs_tests.cpp b/tests/wirs_tests.cpp index eab94de..d959347 100644 --- a/tests/wirs_tests.cpp +++ b/tests/wirs_tests.cpp @@ -96,6 +96,50 @@ START_TEST(t_wirs_init) } +START_TEST(t_point_lookup) +{ + size_t n = 10000; + + auto buffer = create_double_seq_mbuffer(n, false); + auto wirs = Shard(buffer); + + for (size_t i=0; iget_data() + i); + r.key = rec->rec.key; + r.value = rec->rec.value; + + auto result = wirs.point_lookup(r); + ck_assert_ptr_nonnull(result); + ck_assert_int_eq(result->rec.key, r.key); + ck_assert_int_eq(result->rec.value, r.value); + } + + delete buffer; +} +END_TEST + + +START_TEST(t_point_lookup_miss) +{ + size_t n = 10000; + + auto buffer = create_double_seq_mbuffer(n, false); + auto wirs = Shard(buffer); + + for (size_t i=n + 100; i<2*n; i++) { + WRec r; + r.key = i; + r.value = i; + + auto result = wirs.point_lookup(r); + ck_assert_ptr_null(result); + } + + delete buffer; +} + + START_TEST(t_full_cancelation) { size_t n = 100; @@ -317,6 +361,12 @@ Suite *unit_testing() suite_add_tcase(unit, tombstone); + TCase *lookup = tcase_create("de:WIRS:point_lookup Testing"); + tcase_add_test(lookup, t_point_lookup); + tcase_add_test(lookup, t_point_lookup_miss); + suite_add_tcase(unit, lookup); + + TCase *sampling = tcase_create("de:WIRS::WIRSQuery Testing"); tcase_add_test(sampling, t_wirs_query); tcase_add_test(sampling, t_wirs_query_merge); diff --git a/tests/wss_tests.cpp b/tests/wss_tests.cpp index 235f664..c0d6f94 100644 --- a/tests/wss_tests.cpp +++ b/tests/wss_tests.cpp @@ -96,6 +96,49 @@ START_TEST(t_wss_init) } +START_TEST(t_point_lookup) +{ + size_t n = 10000; + + auto buffer = create_double_seq_mbuffer(n, false); + auto wss = Shard(buffer); + + for (size_t i=0; iget_data() + i); + r.key = rec->rec.key; + r.value = rec->rec.value; + + auto result = wss.point_lookup(r); + ck_assert_ptr_nonnull(result); + ck_assert_int_eq(result->rec.key, r.key); + ck_assert_int_eq(result->rec.value, r.value); + } + + delete buffer; +} +END_TEST + + +START_TEST(t_point_lookup_miss) +{ + size_t n = 10000; + + auto buffer = create_double_seq_mbuffer(n, false); + auto wss = Shard(buffer); + + for (size_t i=n + 100; i<2*n; i++) { + WRec r; + r.key = i; + r.value = i; + + auto result = wss.point_lookup(r); + ck_assert_ptr_null(result); + } + + delete buffer; +} + START_TEST(t_full_cancelation) { size_t n = 100; @@ -313,6 +356,13 @@ Suite *unit_testing() suite_add_tcase(unit, tombstone); + TCase *lookup = tcase_create("de:WSS:point_lookup Testing"); + tcase_add_test(lookup, t_point_lookup); + tcase_add_test(lookup, t_point_lookup_miss); + suite_add_tcase(unit, lookup); + + + TCase *sampling = tcase_create("de:WSS::WSSQuery Testing"); tcase_add_test(sampling, t_wss_query); tcase_add_test(sampling, t_wss_query_merge); -- cgit v1.2.3