#include "gqf.h" #include /* printf, scanf, puts, NULL */ #include #include #include "catch.hpp" #include using namespace std; TEST_CASE( "Writing and Reading to/from Disk") { QF qf; int counter_size=2; uint64_t qbits=16; uint64_t num_hash_bits=qbits+8; uint64_t maximum_count=(1ULL<range); for(uint64_t j=0;jnoccupied_slots/(double)qf.metadata->nslots; uint64_t insertedItems=0; while(insertedItems= nRepetitions[insertedItems]); insertedItems++; loadFactor=(double)qf.metadata->noccupied_slots/(double)qf.metadata->nslots; } INFO("Load factor = "<= nRepetitions[i]); CHECK(qf_get_label(&qf2,vals[i])== i%8); } qf_destroy(&qf2); } SECTION("Reading using deserialize "){ qf_deserialize(&qf,"tmp.ser"); for(uint64_t i=0;i= nRepetitions[i]); CHECK(qf_get_label(&qf,vals[i])== i%8); } qf_destroy(&qf); } } TEST_CASE("BLOCK label after loading") { QF qf; int label_size=8; uint64_t qbits=15; uint64_t num_hash_bits=qbits+8; uint64_t maximum_count=(1ULL<range); } double loadFactor=(double)qf.metadata->noccupied_slots/(double)qf.metadata->nslots; uint64_t insertedItems=0; uint64_t count; unordered_map labels_Map; uint64_t currLabel=0; while(loadFactor<0.9){ qf_insert(&qf,vals[insertedItems],50,false,false); insertedItems++; loadFactor=(double)qf.metadata->noccupied_slots/(double)qf.metadata->nslots; } // cout<= 50); char* label; bool flag=qf_getBlockLabel_pointer_byItem(&qf2,key,label); REQUIRE(flag==true); uint64_t block_index = qfi.current/64; CHECK(labels_Map[block_index]==*((uint64_t*)label)); // count = qf_get_label(&qf,key);2 // CHECK(count == key%(maximum_count+1)); } while(!qfi_next(&qfi)); qf_destroy(&qf2); } TEST_CASE( "MMap test") { QF qf; int counter_size=2; uint64_t qbits=16; uint64_t num_hash_bits=qbits+8; uint64_t maximum_count=(1ULL<range); for(uint64_t j=0;jnoccupied_slots/(double)qf.metadata->nslots; uint64_t insertedItems=0; while(insertedItems= nRepetitions[insertedItems]); insertedItems++; loadFactor=(double)qf.metadata->noccupied_slots/(double)qf.metadata->nslots; } INFO("Load factor = "<= nRepetitions[i]); CHECK(qf_get_label(&qf,vals[i])== i%8); } qf_destroy(&qf); }