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/memisam_tests.cpp | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) (limited to 'tests/memisam_tests.cpp') diff --git a/tests/memisam_tests.cpp b/tests/memisam_tests.cpp index f3b80b3..1609edf 100644 --- a/tests/memisam_tests.cpp +++ b/tests/memisam_tests.cpp @@ -8,24 +8,25 @@ using namespace de; -typedef MemISAM M_ISAM; +typedef MemISAM M_ISAM; START_TEST(t_memtable_init) { - auto buffer = new UnweightedMBuffer(1024, true, 512, g_rng); + auto buffer = new MutableBuffer(1024, true, 512, g_rng); for (uint64_t i = 512; i > 0; i--) { - uint32_t v = i; - buffer->append(i, v); + buffer->append(Rec {i, (uint32_t)i}); } + Rec r; + r.set_tombstone(); for (uint64_t i = 1; i <= 256; ++i) { - uint32_t v = i; - buffer->append(i, v, true); + r.key = i; + r.value = i; + buffer->append(r); } for (uint64_t i = 257; i <= 512; ++i) { - uint32_t v = i + 1; - buffer->append(i, v); + buffer->append({i, (uint32_t) i+1}); } BloomFilter* bf = new BloomFilter(BF_FPR, buffer->get_tombstone_count(), BF_HASH_FUNCS, g_rng); @@ -40,9 +41,9 @@ START_TEST(t_memtable_init) START_TEST(t_inmemrun_init) { size_t n = 512; - auto memtable1 = create_test_mbuffer(n); - auto memtable2 = create_test_mbuffer(n); - auto memtable3 = create_test_mbuffer(n); + auto memtable1 = create_test_mbuffer(n); + auto memtable2 = create_test_mbuffer(n); + auto memtable3 = create_test_mbuffer(n); BloomFilter* bf1 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); BloomFilter* bf2 = new BloomFilter(100, BF_HASH_FUNCS, g_rng); @@ -70,11 +71,11 @@ START_TEST(t_inmemrun_init) auto cur_rec = run4->get_record_at(i); - if (run1_idx < n && cur_rec->match(rec1)) { + if (run1_idx < n && cur_rec == rec1) { ++run1_idx; - } else if (run2_idx < n && cur_rec->match(rec2)) { + } else if (run2_idx < n && cur_rec == rec2) { ++run2_idx; - } else if (run3_idx < n && cur_rec->match(rec3)) { + } else if (run3_idx < n && cur_rec == rec3) { ++run3_idx; } else { assert(false); @@ -98,7 +99,7 @@ START_TEST(t_inmemrun_init) START_TEST(t_get_lower_bound_index) { size_t n = 10000; - auto memtable = create_double_seq_mbuffer(n); + auto memtable = create_double_seq_mbuffer(n); ck_assert_ptr_nonnull(memtable); BloomFilter* bf = new BloomFilter(100, BF_HASH_FUNCS, g_rng); @@ -109,7 +110,7 @@ START_TEST(t_get_lower_bound_index) auto tbl_records = memtable->sorted_output(); for (size_t i=0; iget_record_at(i); + const auto *tbl_rec = memtable->get_record_at(i); auto pos = run->get_lower_bound(tbl_rec->key); ck_assert_int_eq(run->get_record_at(pos)->key, tbl_rec->key); ck_assert_int_le(pos, i); @@ -123,7 +124,7 @@ START_TEST(t_get_lower_bound_index) START_TEST(t_get_upper_bound_index) { size_t n = 10000; - auto memtable = create_double_seq_mbuffer(n); + auto memtable = create_double_seq_mbuffer(n); ck_assert_ptr_nonnull(memtable); BloomFilter* bf = new BloomFilter(100, BF_HASH_FUNCS, g_rng); @@ -134,7 +135,7 @@ START_TEST(t_get_upper_bound_index) auto tbl_records = memtable->sorted_output(); for (size_t i=0; iget_record_at(i); + const auto *tbl_rec = memtable->get_record_at(i); auto pos = run->get_upper_bound(tbl_rec->key); ck_assert(pos == run->get_record_count() || run->get_record_at(pos)->key > tbl_rec->key); @@ -150,8 +151,8 @@ START_TEST(t_get_upper_bound_index) START_TEST(t_full_cancelation) { size_t n = 100; - auto mtable = create_double_seq_mbuffer(n, false); - auto mtable_ts = create_double_seq_mbuffer(n, true); + auto mtable = create_double_seq_mbuffer(n, false); + auto mtable_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); -- cgit v1.2.3