#include <catch2/catch.hpp>
#include <reverse_purge_hash_map.hpp>
namespace datasketches {
TEST_CASE("reverse purge hash map: empty", "[frequent_items_sketch]") {
reverse_purge_hash_map<int> map(3, 3, std::equal_to<int>(), std::allocator<int>());
REQUIRE(map.get_num_active() == 0);
REQUIRE(map.get_lg_cur_size() == 3); }
TEST_CASE("reverse purge hash map: one item", "[frequent_items_sketch]") {
reverse_purge_hash_map<int> map(3, 3, std::equal_to<int>(), std::allocator<int>());
map.adjust_or_insert(1, 1);
REQUIRE(map.get_num_active() == 1);
REQUIRE(map.get(1) == 1);
}
TEST_CASE("reverse purge hash map: iterator", "[frequent_items_sketch]") {
reverse_purge_hash_map<int> map(3, 4, std::equal_to<int>(), std::allocator<int>());
for (int i = 0; i < 11; i++) map.adjust_or_insert(i, 1); uint64_t sum = 0;
for (auto it: map) sum += it.second;
REQUIRE(sum == 11);
}
}