From ff000799c3254f52e0beabbe9c62d10c3fc4178e Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 15 May 2023 16:48:56 -0400 Subject: Record format generalization Currently, tombstone counting is bugged. But the rest of it appears to be working. --- tests/wirs_tests.cpp | 44 ++++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 22 deletions(-) (limited to 'tests/wirs_tests.cpp') diff --git a/tests/wirs_tests.cpp b/tests/wirs_tests.cpp index ed83d40..673bdca 100644 --- a/tests/wirs_tests.cpp +++ b/tests/wirs_tests.cpp @@ -19,24 +19,24 @@ using namespace de; -typedef WIRS Shard; +typedef WIRS Shard; START_TEST(t_mbuffer_init) { - auto mem_table = new WeightedMBuffer(1024, true, 1024, g_rng); + auto mem_table = new MutableBuffer(1024, true, 1024, g_rng); for (uint64_t i = 512; i > 0; i--) { uint32_t v = i; - mem_table->append(i, v); + mem_table->append({i,v, 1}); } for (uint64_t i = 1; i <= 256; ++i) { uint32_t v = i; - mem_table->append(i, v, 1.0, true); + mem_table->append({i, v, 1, 1}); } for (uint64_t i = 257; i <= 512; ++i) { uint32_t v = i + 1; - mem_table->append(i, v); + mem_table->append({i, v, 1}); } BloomFilter* bf = new BloomFilter(BF_FPR, mem_table->get_tombstone_count(), BF_HASH_FUNCS, g_rng); @@ -51,9 +51,9 @@ START_TEST(t_mbuffer_init) START_TEST(t_wirs_init) { size_t n = 512; - auto mbuffer1 = create_test_mbuffer(n); - auto mbuffer2 = create_test_mbuffer(n); - auto mbuffer3 = create_test_mbuffer(n); + auto mbuffer1 = create_test_mbuffer(n); + auto mbuffer2 = create_test_mbuffer(n); + auto mbuffer3 = create_test_mbuffer(n); BloomFilter* bf1 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); BloomFilter* bf2 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); @@ -81,11 +81,11 @@ START_TEST(t_wirs_init) auto cur_rec = shard4->get_record_at(i); - if (shard1_idx < n && cur_rec->match(rec1)) { + if (shard1_idx < n && *cur_rec == *rec1) { ++shard1_idx; - } else if (shard2_idx < n && cur_rec->match(rec2)) { + } else if (shard2_idx < n && *cur_rec == *rec2) { ++shard2_idx; - } else if (shard3_idx < n && cur_rec->match(rec3)) { + } else if (shard3_idx < n && *cur_rec == *rec3) { ++shard3_idx; } else { assert(false); @@ -109,7 +109,7 @@ START_TEST(t_wirs_init) START_TEST(t_get_lower_bound_index) { size_t n = 10000; - auto mbuffer = create_double_seq_mbuffer(n); + auto mbuffer = create_double_seq_mbuffer(n); ck_assert_ptr_nonnull(mbuffer); BloomFilter* bf = new BloomFilter(100, BF_HASH_FUNCS, g_rng); @@ -120,7 +120,7 @@ START_TEST(t_get_lower_bound_index) auto tbl_records = mbuffer->sorted_output(); for (size_t i=0; iget_record_at(i); + const WRec *tbl_rec = mbuffer->get_record_at(i); auto pos = shard->get_lower_bound(tbl_rec->key); ck_assert_int_eq(shard->get_record_at(pos)->key, tbl_rec->key); ck_assert_int_le(pos, i); @@ -135,8 +135,8 @@ START_TEST(t_get_lower_bound_index) START_TEST(t_full_cancelation) { size_t n = 100; - auto buffer = create_double_seq_mbuffer(n, false); - auto buffer_ts = create_double_seq_mbuffer(n, true); + auto buffer = create_double_seq_mbuffer(n, false); + auto buffer_ts = create_double_seq_mbuffer(n, true); BloomFilter* bf1 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); BloomFilter* bf2 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); BloomFilter* bf3 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); @@ -171,7 +171,7 @@ END_TEST START_TEST(t_weighted_sampling) { size_t n=1000; - auto buffer = create_weighted_mbuffer(n); + auto buffer = create_weighted_mbuffer(n); BloomFilter* bf = new BloomFilter(100, BF_HASH_FUNCS, g_rng); Shard* shard = new Shard(buffer, bf, false); @@ -181,7 +181,7 @@ START_TEST(t_weighted_sampling) size_t k = 1000; - std::vector results; + std::vector results; results.reserve(k); size_t cnt[3] = {0}; for (size_t i=0; i<1000; i++) { @@ -193,7 +193,7 @@ START_TEST(t_weighted_sampling) cnt[results[j].key - 1]++; } - WIRS::delete_state(state); + WIRS::delete_state(state); } ck_assert(roughly_equal(cnt[0] / 1000, (double) k/4.0, k, .05)); @@ -211,14 +211,14 @@ START_TEST(t_tombstone_check) { size_t cnt = 1024; size_t ts_cnt = 256; - auto buffer = new WeightedMBuffer(cnt + ts_cnt, true, ts_cnt, g_rng); + auto buffer = new MutableBuffer(cnt + ts_cnt, true, ts_cnt, g_rng); std::vector> tombstones; uint64_t key = 1000; uint32_t val = 101; for (size_t i = 0; i < cnt; i++) { - buffer->append(key, val); + buffer->append({key, val, 1}); key++; val++; } @@ -230,14 +230,14 @@ START_TEST(t_tombstone_check) } for (size_t i=0; iappend(tombstones[i].first, tombstones[i].second, 1.0, true); + buffer->append({tombstones[i].first, tombstones[i].second, 1, 1}); } BloomFilter* bf1 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); auto shard = new Shard(buffer, bf1, false); for (size_t i=0; icheck_tombstone(tombstones[i].first, tombstones[i].second)); + ck_assert(shard->check_tombstone({tombstones[i].first, tombstones[i].second})); ck_assert_int_eq(shard->get_rejection_count(), i+1); } -- cgit v1.2.3