summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDouglas Rumbaugh <dbr4@psu.edu>2023-05-29 17:07:19 -0400
committerDouglas Rumbaugh <dbr4@psu.edu>2023-05-29 17:07:19 -0400
commitae152621ade192de3ae6aec7c47dab4487b8244e (patch)
tree4279d2093b8cd8fa2b93e4e7166b0661a0eeebf3
parente47410d56c667cda9f8070a929df7a955ce13115 (diff)
downloaddynamic-extension-ae152621ade192de3ae6aec7c47dab4487b8244e.tar.gz
Framework query bugfixes
-rw-r--r--include/framework/DynamicExtension.h2
-rw-r--r--include/shard/WIRS.h5
-rw-r--r--tests/dynamic_extension_tests.cpp27
3 files changed, 24 insertions, 10 deletions
diff --git a/include/framework/DynamicExtension.h b/include/framework/DynamicExtension.h
index 2dcbf18..4f3a3bc 100644
--- a/include/framework/DynamicExtension.h
+++ b/include/framework/DynamicExtension.h
@@ -157,7 +157,7 @@ public:
// Merge the results together
auto result = Q::merge(query_results);
- for (size_t i=0; i<query_results.size(); i++) {
+ for (size_t i=0; i<states.size(); i++) {
Q::delete_query_state(states[i]);
}
diff --git a/include/shard/WIRS.h b/include/shard/WIRS.h
index 020df19..f3696a4 100644
--- a/include/shard/WIRS.h
+++ b/include/shard/WIRS.h
@@ -55,6 +55,11 @@ struct WIRSState {
std::vector<wirs_node<R>*> nodes;
Alias* top_level_alias;
+ WIRSState() {
+ tot_weight = 0;
+ top_level_alias = nullptr;
+ }
+
~WIRSState() {
if (top_level_alias) delete top_level_alias;
}
diff --git a/tests/dynamic_extension_tests.cpp b/tests/dynamic_extension_tests.cpp
index 518801a..3e8ed49 100644
--- a/tests/dynamic_extension_tests.cpp
+++ b/tests/dynamic_extension_tests.cpp
@@ -196,11 +196,14 @@ START_TEST(t_range_sample_weighted)
size_t cnt[3] = {0};
size_t total_samples = 0;
+
+ wirs_query_parms<WRec> p;
+ p.lower_bound = lower_key;
+ p.upper_bound = upper_key;
+ p.sample_size = k;
+ p.rng = gsl_rng_alloc(gsl_rng_mt19937);
+
for (size_t i=0; i<1000; i++) {
- wirs_query_parms<WRec> p;
- p.lower_bound = lower_key;
- p.upper_bound = upper_key;
- p.sample_size = k;
auto result = ext_wirs->query(&p);
total_samples += result.size();
@@ -210,10 +213,11 @@ START_TEST(t_range_sample_weighted)
}
}
- ck_assert(roughly_equal(cnt[0] / total_samples, (double) k/4.0, k, .05));
- ck_assert(roughly_equal(cnt[1] / total_samples, (double) k/4.0, k, .05));
- ck_assert(roughly_equal(cnt[2] / total_samples, (double) k/2.0, k, .05));
+ ck_assert(roughly_equal(cnt[0], (double) total_samples/4.0, total_samples, .03));
+ ck_assert(roughly_equal(cnt[1], (double) total_samples/4.0, total_samples, .03));
+ ck_assert(roughly_equal(cnt[2], (double) total_samples/2.0, total_samples, .03));
+ gsl_rng_free(p.rng);
delete ext_wirs;
}
END_TEST
@@ -380,6 +384,7 @@ Suite *unit_testing()
{
Suite *unit = suite_create("de::DynamicExtension Unit Testing");
+ /*
TCase *create = tcase_create("de::DynamicExtension::constructor Testing");
tcase_add_test(create, t_create);
suite_add_tcase(unit, create);
@@ -388,16 +393,19 @@ Suite *unit_testing()
tcase_add_test(insert, t_insert);
tcase_add_test(insert, t_insert_with_mem_merges);
suite_add_tcase(unit, insert);
+ */
TCase *sampling = tcase_create("de::DynamicExtension::range_sample Testing");
+ tcase_add_test(sampling, t_range_sample_weighted);
+ suite_add_tcase(unit, sampling);
+
/*
tcase_add_test(sampling, t_range_sample_memtable);
tcase_add_test(sampling, t_range_sample_memlevels);
- tcase_add_test(sampling, t_range_sample_weighted);
- suite_add_tcase(unit, sampling);
*/
+ /*
TCase *ts = tcase_create("de::DynamicExtension::tombstone_compaction Testing");
tcase_add_test(ts, t_tombstone_merging_01);
tcase_set_timeout(ts, 500);
@@ -407,6 +415,7 @@ Suite *unit_testing()
tcase_add_test(flat, t_sorted_array);
tcase_set_timeout(flat, 500);
suite_add_tcase(unit, flat);
+ */
return unit;
}