#include #include #include #include #include #include #include #include #include #include using namespace fc; static bloom_parameters setup_parameters() { bloom_parameters parameters; // How many elements roughly do we expect to insert? parameters.projected_element_count = 100000; // Maximum tolerable false positive probability? (0,1) parameters.false_positive_probability = 0.0001; // 1 in 10000 // Simple randomizer (optional) parameters.random_seed = 0xA5A5A5A5; if (!parameters) { BOOST_FAIL( "Error - Invalid set of bloom filter parameters!" ); } parameters.compute_optimal_parameters(); return parameters; } BOOST_AUTO_TEST_SUITE(fc_crypto) BOOST_AUTO_TEST_CASE(bloom_test_1) { try { //Instantiate Bloom Filter bloom_filter filter(setup_parameters()); uint32_t count = 0; std::string line; std::ifstream in("README.md"); std::ofstream words("words.txt"); while( in.good() && count < 100000 ) { std::getline(in, line); // std::cout << "'"< -100; --i) { BOOST_CHECK( !filter.contains(i) ); } } } catch ( const fc::exception& e ) { edump((e.to_detail_string()) ); } } BOOST_AUTO_TEST_SUITE_END()