diff --git a/test/unordered/merge_tests.cpp b/test/unordered/merge_tests.cpp index 3d5e7f97..b848e4f3 100644 --- a/test/unordered/merge_tests.cpp +++ b/test/unordered/merge_tests.cpp @@ -139,12 +139,14 @@ UNORDERED_AUTO_TEST(merge_set_and_multiset) test::check_equivalent_keys(y); } -template void merge_empty_test(X*, test::random_generator generator) +template +void merge_empty_test(X1*, X2*, test::random_generator generator) { test::check_instances check_; - test::random_values v(1000, generator); - X x1(v.begin(), v.end()), x2; + test::random_values v(1000, generator); + X1 x1(v.begin(), v.end()); + X2 x2; x1.merge(x2); test::check_container(x1, v); BOOST_TEST(x2.empty()); @@ -158,7 +160,8 @@ void merge_into_empty_test(X*, test::random_generator generator) test::check_instances check_; test::random_values v(1000, generator); - X x1, x2(v.begin(), v.end()); + X x1; + X x2(v.begin(), v.end()); x1.merge(x2); test::check_container(x1, v); BOOST_TEST(x2.empty()); @@ -166,24 +169,26 @@ void merge_into_empty_test(X*, test::random_generator generator) test::check_equivalent_keys(x2); } -template void unique_merge_test(X*, test::random_generator generator) +template +void merge_into_unique_keys_test(X1*, X2*, test::random_generator generator) { test::check_instances check_; - test::random_values v1(1000, generator); - test::random_values v2(1000, generator); + test::random_values v1(1000, generator); + test::random_values v2(1000, generator); v1.insert(v2.begin(), boost::next(v2.begin(), 100)); v2.insert(v1.begin(), boost::next(v1.begin(), 100)); - X x1(v1.begin(), v1.end()), x2(v2.begin(), v2.end()); + X1 x1(v1.begin(), v1.end()); + X2 x2(v2.begin(), v2.end()); x1.merge(x2); - test::ordered tracker1 = test::create_ordered(x1); - test::ordered tracker2 = test::create_ordered(x2); - test::ordered tracker_tmp = test::create_ordered(x2); + test::ordered tracker1 = test::create_ordered(x1); + test::ordered tracker2 = test::create_ordered(x2); + test::ordered tracker_tmp = test::create_ordered(x2); tracker1.insert(v1.begin(), v1.end()); tracker_tmp.insert(v2.begin(), v2.end()); - for (BOOST_DEDUCED_TYPENAME test::ordered::iterator it = + for (BOOST_DEDUCED_TYPENAME test::ordered::iterator it = tracker_tmp.begin(); it != tracker_tmp.end(); ++it) { if (!tracker1.insert(*it).second) { @@ -197,19 +202,21 @@ template void unique_merge_test(X*, test::random_generator generator) test::check_equivalent_keys(x2); } -template void equiv_merge_test(X*, test::random_generator generator) +template +void merge_into_equiv_keys_test(X1*, X2*, test::random_generator generator) { test::check_instances check_; - test::random_values v1(1000, generator); - test::random_values v2(1000, generator); + test::random_values v1(1000, generator); + test::random_values v2(1000, generator); v1.insert(v2.begin(), boost::next(v2.begin(), 100)); v2.insert(v1.begin(), boost::next(v1.begin(), 100)); - X x1(v1.begin(), v1.end()), x2(v2.begin(), v2.end()); + X1 x1(v1.begin(), v1.end()); + X2 x2(v2.begin(), v2.end()); x1.merge(x2); - test::ordered tracker1 = test::create_ordered(x1); + test::ordered tracker1 = test::create_ordered(x1); tracker1.insert(v1.begin(), v1.end()); tracker1.insert(v2.begin(), v2.end()); @@ -221,34 +228,93 @@ template void equiv_merge_test(X*, test::random_generator generator) boost::unordered_set >* test_set_std_alloc; +boost::unordered_multiset >* test_multiset_std_alloc; + +boost::unordered_map >* test_map_std_alloc; boost::unordered_multimap >* test_multimap_std_alloc; boost::unordered_set >* test_set; -boost::unordered_multiset >* test_multiset; +boost::unordered_multiset >* test_multiset; + boost::unordered_map >* test_map; -boost::unordered_multimap >* test_multimap; +boost::unordered_multimap >* test_multimap; using test::default_generator; using test::generate_collisions; +// clang-format off UNORDERED_TEST(merge_empty_test, - ((test_set_std_alloc)(test_multimap_std_alloc)(test_set)(test_multiset)( - test_map)(test_multimap))((default_generator)(generate_collisions))) + ((test_set_std_alloc)(test_multiset_std_alloc)) + ((test_set_std_alloc)(test_multiset_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_empty_test, + ((test_map_std_alloc)(test_multimap_std_alloc)) + ((test_map_std_alloc)(test_multimap_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_empty_test, + ((test_set)(test_multiset)) + ((test_set)(test_multiset)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_empty_test, + ((test_map)(test_multimap)) + ((test_map)(test_multimap)) + ((default_generator)(generate_collisions))) UNORDERED_TEST(merge_into_empty_test, - ((test_set_std_alloc)(test_multimap_std_alloc)(test_set)(test_multiset)( - test_map)(test_multimap))((default_generator)(generate_collisions))) + ((test_set_std_alloc)(test_multiset_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_empty_test, + ((test_map_std_alloc)(test_multimap_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_empty_test, + ((test_set)(test_multiset)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_empty_test, + ((test_map)(test_multimap)) + ((default_generator)(generate_collisions))) -UNORDERED_TEST(unique_merge_test, - ((test_set_std_alloc)(test_set)(test_map))((default_generator))) +UNORDERED_TEST(merge_into_unique_keys_test, + ((test_set_std_alloc)) + ((test_set_std_alloc)(test_multiset_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_unique_keys_test, + ((test_map_std_alloc)) + ((test_map_std_alloc)(test_multimap_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_unique_keys_test, + ((test_set)) + ((test_set)(test_multiset)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_unique_keys_test, + ((test_map)) + ((test_map)(test_multimap)) + ((default_generator)(generate_collisions))) + +UNORDERED_TEST(merge_into_equiv_keys_test, + ((test_multiset_std_alloc)) + ((test_set_std_alloc)(test_multiset_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_equiv_keys_test, + ((test_multimap_std_alloc)) + ((test_map_std_alloc)(test_multimap_std_alloc)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_equiv_keys_test, + ((test_multiset)) + ((test_set)(test_multiset)) + ((default_generator)(generate_collisions))) +UNORDERED_TEST(merge_into_equiv_keys_test, + ((test_multimap)) + ((test_map)(test_multimap)) + ((default_generator)(generate_collisions))) +// clang-format on -UNORDERED_TEST(equiv_merge_test, ((test_multimap_std_alloc)(test_multiset)( - test_multimap))((default_generator))) } RUN_TESTS()