osrm-backend/test/unit/equal_range.cpp
Siarhei Fedartsou f1087e81ec Squashed 'third_party/unordered_dense/' content from commit 231e48c94
git-subtree-dir: third_party/unordered_dense
git-subtree-split: 231e48c9426bd21c273669e5fdcd042c146975cf
2024-05-30 19:06:16 +02:00

35 lines
965 B
C++

#include <ankerl/unordered_dense.h>
#include <app/doctest.h>
#include <type_traits> // for add_const_t
#include <utility> // for pair, as_const
#include <vector> // for vector
TEST_CASE_MAP("equal_range", int, int) {
auto map = map_t();
// auto map = std::unordered_map<int, int>();
auto range = map.equal_range(123);
REQUIRE(range.first == map.end());
REQUIRE(range.second == map.end());
map.try_emplace(1, 1);
range = map.equal_range(123);
REQUIRE(range.first == map.end());
REQUIRE(range.second == map.end());
int const x = 1;
auto const_range = std::as_const(map).equal_range(x);
REQUIRE(const_range.first == map.begin());
REQUIRE(const_range.second == map.end());
for (int i = 0; i < 100; ++i) {
map.try_emplace(i, i);
}
range = map.equal_range(50);
auto after_first = ++range.first;
REQUIRE(range.second == after_first);
REQUIRE(range.second != map.end());
}