OpenFPGA/libs/libvtrutil/test/test_map_util.cpp

36 lines
824 B
C++

#include "catch.hpp"
#include "vtr_map_util.h"
#include "vtr_range.h"
#include <map>
TEST_CASE("Iterate Map Keys Values", "[vtr_map_util]") {
std::vector<int> keys = {0, 1, 2, 3};
std::vector<char> values = {'a', 'b', 'c', 'd'};
//Initialize map
std::map<int, char> map;
for (size_t i = 0; i < keys.size(); ++i) {
map[keys[i]] = values[i];
}
//Check key iteration
auto key_range = vtr::make_key_range(map);
std::vector<int> seen_keys;
for (int key : key_range) {
seen_keys.push_back(key);
}
REQUIRE(seen_keys == keys);
//Check value iteration
auto value_range = vtr::make_value_range(map);
std::vector<char> seen_values;
for (char value : value_range) {
seen_values.push_back(value);
}
REQUIRE(seen_values == values);
}