Adapts Tile tests to protozero's strict iterator_range API from @daniel-j-h
This commit is contained in:
parent
b821a1dd98
commit
89007ae669
@ -52,8 +52,8 @@ BOOST_AUTO_TEST_CASE(test_tile)
|
||||
BOOST_CHECK_EQUAL(feature_message.tag(), util::vector_tile::FEATURE_ATTRIBUTES_TAG);
|
||||
// properties
|
||||
auto property_iter_pair = feature_message.get_packed_uint32();
|
||||
auto value_begin = property_iter_pair.first;
|
||||
auto value_end = property_iter_pair.second;
|
||||
auto value_begin = property_iter_pair.begin();
|
||||
auto value_end = property_iter_pair.end();
|
||||
BOOST_CHECK_EQUAL(std::distance(value_begin, value_end), 10);
|
||||
auto iter = value_begin;
|
||||
BOOST_CHECK_EQUAL(*iter++, 0); // speed key
|
||||
@ -74,7 +74,7 @@ BOOST_AUTO_TEST_CASE(test_tile)
|
||||
// geometry
|
||||
feature_message.next();
|
||||
auto geometry_iter_pair = feature_message.get_packed_uint32();
|
||||
BOOST_CHECK_GT(std::distance(geometry_iter_pair.first, geometry_iter_pair.second), 1);
|
||||
BOOST_CHECK_GT(std::distance(geometry_iter_pair.begin(), geometry_iter_pair.end()), 1);
|
||||
};
|
||||
|
||||
const auto check_value = [](protozero::pbf_reader value) {
|
||||
@ -107,7 +107,6 @@ BOOST_AUTO_TEST_CASE(test_tile)
|
||||
auto number_of_speed_keys = 0u;
|
||||
auto number_of_speed_values = 0u;
|
||||
|
||||
|
||||
while (layer_message.next())
|
||||
{
|
||||
switch (layer_message.tag())
|
||||
@ -145,8 +144,6 @@ BOOST_AUTO_TEST_CASE(test_tile)
|
||||
layer_message = tile_message.get_message();
|
||||
|
||||
const auto check_turn_feature = [](protozero::pbf_reader feature_message) {
|
||||
protozero::pbf_reader::const_uint32_iterator value_begin;
|
||||
protozero::pbf_reader::const_uint32_iterator value_end;
|
||||
feature_message.next(); // advance parser to first entry
|
||||
BOOST_CHECK_EQUAL(feature_message.tag(), util::vector_tile::GEOMETRY_TAG);
|
||||
BOOST_CHECK_EQUAL(feature_message.get_enum(), util::vector_tile::GEOMETRY_TYPE_POINT);
|
||||
@ -158,50 +155,50 @@ BOOST_AUTO_TEST_CASE(test_tile)
|
||||
feature_message.next(); // advance to next entry
|
||||
BOOST_CHECK_EQUAL(feature_message.tag(), util::vector_tile::FEATURE_ATTRIBUTES_TAG);
|
||||
// properties
|
||||
std::tie(value_begin, value_end) = feature_message.get_packed_uint32();
|
||||
BOOST_CHECK_EQUAL(std::distance(value_begin, value_end), 6);
|
||||
auto iter = value_begin;
|
||||
auto feature_iter_pair = feature_message.get_packed_uint32();
|
||||
BOOST_CHECK_EQUAL(std::distance(feature_iter_pair.begin(), feature_iter_pair.end()), 6);
|
||||
auto iter = feature_iter_pair.begin();
|
||||
BOOST_CHECK_EQUAL(*iter++, 0); // bearing_in key
|
||||
*iter++;
|
||||
BOOST_CHECK_EQUAL(*iter++, 1); // turn_angle key
|
||||
*iter++;
|
||||
BOOST_CHECK_EQUAL(*iter++, 2); // cost key
|
||||
*iter++; // skip value check, can be valud uint32
|
||||
BOOST_CHECK(iter == value_end);
|
||||
*iter++; // skip value check, can be valud uint32
|
||||
BOOST_CHECK(iter == feature_iter_pair.end());
|
||||
// geometry
|
||||
feature_message.next();
|
||||
std::tie(value_begin, value_end) = feature_message.get_packed_uint32();
|
||||
BOOST_CHECK_GT(std::distance(value_begin, value_end), 1);
|
||||
auto geometry_iter_pair = feature_message.get_packed_uint32();
|
||||
BOOST_CHECK_GT(std::distance(geometry_iter_pair.begin(), geometry_iter_pair.end()), 1);
|
||||
};
|
||||
|
||||
auto number_of_turn_keys = 0u;
|
||||
|
||||
while (layer_message.next())
|
||||
{
|
||||
switch(layer_message.tag())
|
||||
switch (layer_message.tag())
|
||||
{
|
||||
case util::vector_tile::VERSION_TAG:
|
||||
BOOST_CHECK_EQUAL(layer_message.get_uint32(), 2);
|
||||
break;
|
||||
case util::vector_tile::NAME_TAG:
|
||||
BOOST_CHECK_EQUAL(layer_message.get_string(), "turns");
|
||||
break;
|
||||
case util::vector_tile::EXTENT_TAG:
|
||||
BOOST_CHECK_EQUAL(layer_message.get_uint32(), util::vector_tile::EXTENT);
|
||||
break;
|
||||
case util::vector_tile::FEATURE_TAG:
|
||||
check_turn_feature(layer_message.get_message());
|
||||
break;
|
||||
case util::vector_tile::KEY_TAG:
|
||||
layer_message.get_string();
|
||||
number_of_turn_keys++;
|
||||
break;
|
||||
case util::vector_tile::VARIANT_TAG:
|
||||
check_value(layer_message.get_message());
|
||||
break;
|
||||
default:
|
||||
BOOST_CHECK(false); // invalid tag
|
||||
break;
|
||||
case util::vector_tile::VERSION_TAG:
|
||||
BOOST_CHECK_EQUAL(layer_message.get_uint32(), 2);
|
||||
break;
|
||||
case util::vector_tile::NAME_TAG:
|
||||
BOOST_CHECK_EQUAL(layer_message.get_string(), "turns");
|
||||
break;
|
||||
case util::vector_tile::EXTENT_TAG:
|
||||
BOOST_CHECK_EQUAL(layer_message.get_uint32(), util::vector_tile::EXTENT);
|
||||
break;
|
||||
case util::vector_tile::FEATURE_TAG:
|
||||
check_turn_feature(layer_message.get_message());
|
||||
break;
|
||||
case util::vector_tile::KEY_TAG:
|
||||
layer_message.get_string();
|
||||
number_of_turn_keys++;
|
||||
break;
|
||||
case util::vector_tile::VARIANT_TAG:
|
||||
check_value(layer_message.get_message());
|
||||
break;
|
||||
default:
|
||||
BOOST_CHECK(false); // invalid tag
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user