Improve heterogeneous equal_range() test suite to check iterator distance and that the correct key was pulled, including when the map contains multiple keys

This commit is contained in:
LeonineKing1199
2021-12-02 09:18:24 -08:00
parent 13f40e4333
commit 9955886ef5

View File

@ -279,8 +279,10 @@ template <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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 <class UnorderedMap> 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);
}