#include "common.hpp" template void test_unordered_set() { std::random_device rd; std::mt19937 gen(rd()); for(int ii=0; ii<100; ++ii) { std::unordered_set o_podunordered_set; for(int j=0; j<100; ++j) o_podunordered_set.insert(random_value(gen)); std::unordered_set> o_iserunordered_set; for(int j=0; j<100; ++j) o_iserunordered_set.insert({ random_value(gen), random_value(gen) }); std::unordered_set> o_isplunordered_set; for(int j=0; j<100; ++j) o_isplunordered_set.insert({ random_value(gen), random_value(gen) }); std::unordered_set> o_eserunordered_set; for(int j=0; j<100; ++j) o_eserunordered_set.insert({ random_value(gen), random_value(gen) }); std::unordered_set> o_esplunordered_set; for(int j=0; j<100; ++j) o_esplunordered_set.insert({ random_value(gen), random_value(gen) }); std::ostringstream os; { OArchive oar(os); oar(o_podunordered_set); oar(o_iserunordered_set); oar(o_isplunordered_set); oar(o_eserunordered_set); oar(o_esplunordered_set); } std::unordered_set i_podunordered_set; std::unordered_set> i_iserunordered_set; std::unordered_set> i_isplunordered_set; std::unordered_set> i_eserunordered_set; std::unordered_set> i_esplunordered_set; std::istringstream is(os.str()); { IArchive iar(is); iar(i_podunordered_set); iar(i_iserunordered_set); iar(i_isplunordered_set); iar(i_eserunordered_set); iar(i_esplunordered_set); } for(auto const & p : i_podunordered_set) { BOOST_CHECK_EQUAL(o_podunordered_set.count(p), 1); } for(auto const & p : i_iserunordered_set) { BOOST_CHECK_EQUAL(o_iserunordered_set.count(p), 1); } for(auto const & p : i_isplunordered_set) { BOOST_CHECK_EQUAL(o_isplunordered_set.count(p), 1); } for(auto const & p : i_eserunordered_set) { BOOST_CHECK_EQUAL(o_eserunordered_set.count(p), 1); } for(auto const & p : i_esplunordered_set) { BOOST_CHECK_EQUAL(o_esplunordered_set.count(p), 1); } } } BOOST_AUTO_TEST_CASE( binary_unordered_set ) { test_unordered_set(); } BOOST_AUTO_TEST_CASE( portable_binary_unordered_set ) { test_unordered_set(); } BOOST_AUTO_TEST_CASE( xml_unordered_set ) { test_unordered_set(); } BOOST_AUTO_TEST_CASE( json_unordered_set ) { test_unordered_set(); }