From a97483b92807ace4a87a8b4b115e92b89b8ff6d9 Mon Sep 17 00:00:00 2001 From: LeonineKing1199 Date: Thu, 2 Dec 2021 09:42:30 -0800 Subject: [PATCH] Add test cases for empty UnorderedMaps for `equal_range()` --- test/unordered/transparent_tests.cpp | 82 +++++++++++++++++++++++++++- 1 file changed, 81 insertions(+), 1 deletion(-) diff --git a/test/unordered/transparent_tests.cpp b/test/unordered/transparent_tests.cpp index ff62eb6f..7acab1a4 100644 --- a/test/unordered/transparent_tests.cpp +++ b/test/unordered/transparent_tests.cpp @@ -278,6 +278,46 @@ template void test_transparent_equal_range() UnorderedMap unordered_map; + // empty tests + // + // explicitly test `equal_range()` vs `equal_range() const` + // + { + typedef typename UnorderedMap::iterator iterator; + typedef std::pair iterator_pair; + + UnorderedMap& map = unordered_map; + BOOST_TEST(map.empty()); + + iterator_pair iters = map.equal_range(0); + + iterator begin = iters.first; + iterator end = iters.second; + + BOOST_TEST(begin == end); + BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); + } + + { + typedef typename UnorderedMap::const_iterator iterator; + typedef std::pair iterator_pair; + + UnorderedMap const& map = unordered_map; + BOOST_TEST(map.empty()); + + iterator_pair iters = map.equal_range(0); + + iterator begin = iters.first; + iterator end = iters.second; + + BOOST_TEST(begin == end); + BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); + } + + BOOST_TEST(key::count_ == 0); + unordered_map[key(0)] = 1337; unordered_map[key(1)] = 1338; unordered_map[key(2)] = 1339; @@ -359,11 +399,51 @@ template void test_non_transparent_equal_range() UnorderedMap unordered_map; + // empty tests + // + // explicitly test `equal_range()` vs `equal_range() const` + // + { + typedef typename UnorderedMap::iterator iterator; + typedef std::pair iterator_pair; + + UnorderedMap& map = unordered_map; + BOOST_TEST(map.empty()); + + iterator_pair iters = map.equal_range(0); + + iterator begin = iters.first; + iterator end = iters.second; + + BOOST_TEST(begin == end); + BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); + } + + { + typedef typename UnorderedMap::const_iterator iterator; + typedef std::pair iterator_pair; + + UnorderedMap const& map = unordered_map; + BOOST_TEST(map.empty()); + + iterator_pair iters = map.equal_range(0); + + iterator begin = iters.first; + iterator end = iters.second; + + BOOST_TEST(begin == end); + BOOST_TEST(begin == map.end()); + BOOST_TEST(std::distance(begin, end) == 0); + } + + BOOST_TEST(key::count_ == 2); + unordered_map[key(0)] = 1337; unordered_map[key(1)] = 1338; unordered_map[key(2)] = 1339; - int key_count = 6; + int key_count = 8; BOOST_TEST(key::count_ == key_count);