From 9955886ef5b8883d5e56abf91c247f3e94f348ad Mon Sep 17 00:00:00 2001 From: LeonineKing1199 Date: Thu, 2 Dec 2021 09:18:24 -0800 Subject: [PATCH] Improve heterogeneous `equal_range()` test suite to check iterator distance and that the correct key was pulled, including when the map contains multiple keys --- test/unordered/transparent_tests.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/test/unordered/transparent_tests.cpp b/test/unordered/transparent_tests.cpp index a37e3cf2..ff62eb6f 100644 --- a/test/unordered/transparent_tests.cpp +++ b/test/unordered/transparent_tests.cpp @@ -279,8 +279,10 @@ template void test_transparent_equal_range() UnorderedMap unordered_map; unordered_map[key(0)] = 1337; + unordered_map[key(1)] = 1338; + unordered_map[key(2)] = 1339; - int const expected_key_count = 2; + int const expected_key_count = 6; BOOST_TEST(key::count_ == expected_key_count); @@ -301,8 +303,10 @@ template void test_transparent_equal_range() BOOST_TEST(begin != end); BOOST_TEST(begin != map.end()); + BOOST_TEST(std::distance(begin, end) == 1); value_type const& val = *begin; + BOOST_TEST(val.first.x_ == 0); BOOST_TEST(val.second == 1337); iters = map.equal_range(1337); @@ -312,6 +316,7 @@ template void test_transparent_equal_range() BOOST_TEST(begin == end); BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); BOOST_TEST(key::count_ == expected_key_count); } @@ -329,8 +334,10 @@ template void test_transparent_equal_range() BOOST_TEST(begin != end); BOOST_TEST(begin != map.end()); + BOOST_TEST(std::distance(begin, end) == 1); value_type const& val = *begin; + BOOST_TEST(val.first.x_ == 0); BOOST_TEST(val.second == 1337); iters = map.equal_range(1337); @@ -340,6 +347,7 @@ template void test_transparent_equal_range() BOOST_TEST(begin == end); BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); BOOST_TEST(key::count_ == expected_key_count); } @@ -352,8 +360,10 @@ template void test_non_transparent_equal_range() UnorderedMap unordered_map; unordered_map[key(0)] = 1337; + unordered_map[key(1)] = 1338; + unordered_map[key(2)] = 1339; - int key_count = 2; + int key_count = 6; BOOST_TEST(key::count_ == key_count); @@ -374,8 +384,10 @@ template void test_non_transparent_equal_range() BOOST_TEST(begin != end); BOOST_TEST(begin != map.end()); + BOOST_TEST(std::distance(begin, end) == 1); value_type const& val = *begin; + BOOST_TEST(val.first.x_ == 0); BOOST_TEST(val.second == 1337); iters = map.equal_range(1337); @@ -385,6 +397,7 @@ template void test_non_transparent_equal_range() BOOST_TEST(begin == end); BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); BOOST_TEST(key::count_ == 2 + key_count); key_count += 2; @@ -403,8 +416,10 @@ template void test_non_transparent_equal_range() BOOST_TEST(begin != end); BOOST_TEST(begin != map.end()); + BOOST_TEST(std::distance(begin, end) == 1); value_type const& val = *begin; + BOOST_TEST(val.first.x_ == 0); BOOST_TEST(val.second == 1337); iters = map.equal_range(1337); @@ -414,6 +429,7 @@ template void test_non_transparent_equal_range() BOOST_TEST(begin == end); BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); BOOST_TEST(key::count_ == 2 + key_count); }