mirror of
https://github.com/boostorg/unordered.git
synced 2025-07-30 11:27:15 +02:00
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:
@ -279,8 +279,10 @@ template <class UnorderedMap> void test_transparent_equal_range()
|
|||||||
UnorderedMap unordered_map;
|
UnorderedMap unordered_map;
|
||||||
|
|
||||||
unordered_map[key(0)] = 1337;
|
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);
|
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 != end);
|
||||||
BOOST_TEST(begin != map.end());
|
BOOST_TEST(begin != map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 1);
|
||||||
|
|
||||||
value_type const& val = *begin;
|
value_type const& val = *begin;
|
||||||
|
BOOST_TEST(val.first.x_ == 0);
|
||||||
BOOST_TEST(val.second == 1337);
|
BOOST_TEST(val.second == 1337);
|
||||||
|
|
||||||
iters = map.equal_range(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 == end);
|
||||||
BOOST_TEST(begin == map.end());
|
BOOST_TEST(begin == map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 0);
|
||||||
|
|
||||||
BOOST_TEST(key::count_ == expected_key_count);
|
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 != end);
|
||||||
BOOST_TEST(begin != map.end());
|
BOOST_TEST(begin != map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 1);
|
||||||
|
|
||||||
value_type const& val = *begin;
|
value_type const& val = *begin;
|
||||||
|
BOOST_TEST(val.first.x_ == 0);
|
||||||
BOOST_TEST(val.second == 1337);
|
BOOST_TEST(val.second == 1337);
|
||||||
|
|
||||||
iters = map.equal_range(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 == end);
|
||||||
BOOST_TEST(begin == map.end());
|
BOOST_TEST(begin == map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 0);
|
||||||
|
|
||||||
BOOST_TEST(key::count_ == expected_key_count);
|
BOOST_TEST(key::count_ == expected_key_count);
|
||||||
}
|
}
|
||||||
@ -352,8 +360,10 @@ template <class UnorderedMap> void test_non_transparent_equal_range()
|
|||||||
UnorderedMap unordered_map;
|
UnorderedMap unordered_map;
|
||||||
|
|
||||||
unordered_map[key(0)] = 1337;
|
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);
|
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 != end);
|
||||||
BOOST_TEST(begin != map.end());
|
BOOST_TEST(begin != map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 1);
|
||||||
|
|
||||||
value_type const& val = *begin;
|
value_type const& val = *begin;
|
||||||
|
BOOST_TEST(val.first.x_ == 0);
|
||||||
BOOST_TEST(val.second == 1337);
|
BOOST_TEST(val.second == 1337);
|
||||||
|
|
||||||
iters = map.equal_range(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 == end);
|
||||||
BOOST_TEST(begin == map.end());
|
BOOST_TEST(begin == map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 0);
|
||||||
|
|
||||||
BOOST_TEST(key::count_ == 2 + key_count);
|
BOOST_TEST(key::count_ == 2 + key_count);
|
||||||
key_count += 2;
|
key_count += 2;
|
||||||
@ -403,8 +416,10 @@ template <class UnorderedMap> void test_non_transparent_equal_range()
|
|||||||
|
|
||||||
BOOST_TEST(begin != end);
|
BOOST_TEST(begin != end);
|
||||||
BOOST_TEST(begin != map.end());
|
BOOST_TEST(begin != map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 1);
|
||||||
|
|
||||||
value_type const& val = *begin;
|
value_type const& val = *begin;
|
||||||
|
BOOST_TEST(val.first.x_ == 0);
|
||||||
BOOST_TEST(val.second == 1337);
|
BOOST_TEST(val.second == 1337);
|
||||||
|
|
||||||
iters = map.equal_range(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 == end);
|
||||||
BOOST_TEST(begin == map.end());
|
BOOST_TEST(begin == map.end());
|
||||||
|
BOOST_TEST(std::distance(begin, end) == 0);
|
||||||
|
|
||||||
BOOST_TEST(key::count_ == 2 + key_count);
|
BOOST_TEST(key::count_ == 2 + key_count);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user