| #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); |
| } |