#include "test_scaffold.h" #include #include #include "gp/bloomfilter.hpp" typedef std::linear_congruential_engine cheap_rand; typedef std::linear_congruential_engine cheap_rand_bis; struct bfilter_test : public test_scaffold { uint32_t seed; bfilter_test() { seed = std::random_device{}(); name = __FILE__ ":1_seed"; name += std::to_string(seed); } virtual int run() { cheap_rand setter(seed); cheap_rand getter(seed); gp::bloomfilter test_filter; for(int a = 0 ; a < 100; a++) { test_filter.set_hash(setter()); } bool result = true; for(int a = 0 ; a < 100; a++) { result *= test_filter.test_hash(getter()); } return !result; } }; append_test dummy_r21fg6r43(new bfilter_test{}); struct bfilter2_test : public test_scaffold { uint32_t seedA; uint32_t seedB; bfilter2_test() { seedA = std::random_device{}(); seedB = std::random_device{}(); name = __FILE__ ":2_seedA"; name += std::to_string(seedA); name += "&seedB"; name += std::to_string(seedB); } virtual int run() { cheap_rand setter(seedA); cheap_rand_bis getter(seedB); gp::bloomfilter test_filter; for(int a = 0 ; a < 10000; a++) { test_filter.set_hash(setter()); } int interference = 0; for(int a = 0 ; a < 10000; a++) { interference += test_filter.test_hash(getter()); } return interference >= 550; } }; append_test dummy_r2gflu3(new bfilter2_test{}); struct bfilter3_test : public test_scaffold { uint32_t seed; bfilter3_test() { seed = std::random_device{}(); name = __FILE__ ":3_seed"; name += std::to_string(seed); } virtual int run() { cheap_rand setter(seed); cheap_rand getter(seed); gp::bloomfilter test_filter; for(int a = 0 ; a < 1000; a++) { test_filter.set_hash(setter()); } bool result = true; for(int a = 0 ; a < 1000; a++) { result *= test_filter.test_hash(getter()); } return !result; } }; append_test dummy_56489flu3(new bfilter3_test{});