34 lines
935 B
C++
34 lines
935 B
C++
|
#include <ankerl/unordered_dense.h>
|
||
|
|
||
|
#include <app/counter.h>
|
||
|
#include <app/doctest.h>
|
||
|
|
||
|
TEST_CASE_MAP("replace", counter::obj, counter::obj) {
|
||
|
auto counts = counter{};
|
||
|
INFO(counts);
|
||
|
|
||
|
auto container = typename map_t::value_container_type{};
|
||
|
|
||
|
for (size_t i = 0; i < 100; ++i) {
|
||
|
container.emplace_back(counter::obj{i, counts}, counter::obj{i, counts});
|
||
|
container.emplace_back(counter::obj{i, counts}, counter::obj{i, counts});
|
||
|
}
|
||
|
|
||
|
for (size_t i = 0; i < 10; ++i) {
|
||
|
container.emplace_back(counter::obj{i, counts}, counter::obj{i, counts});
|
||
|
}
|
||
|
|
||
|
// add some elements
|
||
|
auto map = map_t();
|
||
|
for (size_t i = 0; i < 10; ++i) {
|
||
|
map.try_emplace(counter::obj{i, counts}, counter::obj{i, counts});
|
||
|
}
|
||
|
|
||
|
map.replace(std::move(container));
|
||
|
|
||
|
REQUIRE(map.size() == 100U);
|
||
|
for (size_t i = 0; i < 100; ++i) {
|
||
|
REQUIRE(map.contains(counter::obj{i, counts}));
|
||
|
}
|
||
|
}
|