MCPcopy Create free account
hub / github.com/Project-OSRM/osrm-backend / validate_feature_layer

Function validate_feature_layer

unit_tests/library/tile.cpp:49–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

47}
48
49void validate_feature_layer(vtzero::layer layer)
50{
51 BOOST_CHECK_EQUAL(layer.version(), 2);
52 BOOST_CHECK_EQUAL(to_string(layer.name()), "speeds");
53 BOOST_CHECK_EQUAL(layer.extent(), osrm::util::vector_tile::EXTENT);
54 BOOST_CHECK_EQUAL(layer.key_table().size(), 8);
55 BOOST_CHECK(layer.num_features() > 2500);
56
57 while (auto feature = layer.next_feature())
58 {
59 BOOST_CHECK(feature.has_id());
60 BOOST_CHECK(feature.geometry_type() == vtzero::GeomType::LINESTRING);
61 BOOST_CHECK(!feature.empty());
62
63 auto props = vtzero::create_properties_map<std::map<std::string, variant_type>>(feature);
64
65 BOOST_CHECK(props.contains("speed"));
66 BOOST_CHECK(std::holds_alternative<uint64_t>(props["speed"]));
67
68 BOOST_CHECK(props.contains("rate"));
69 BOOST_CHECK(std::holds_alternative<double>(props["rate"]));
70
71 BOOST_CHECK(props.contains("weight"));
72 BOOST_CHECK(std::holds_alternative<double>(props["weight"]));
73
74 BOOST_CHECK(props.contains("duration"));
75 BOOST_CHECK(std::holds_alternative<double>(props["duration"]));
76
77 BOOST_CHECK(props.contains("is_small"));
78 BOOST_CHECK(std::holds_alternative<bool>(props["is_small"]));
79
80 BOOST_CHECK(props.contains("is_startpoint"));
81 BOOST_CHECK(std::holds_alternative<bool>(props["is_startpoint"]));
82
83 BOOST_CHECK(props.contains("datasource"));
84 BOOST_CHECK(std::holds_alternative<std::string>(props["datasource"]));
85
86 BOOST_CHECK(props.contains("name"));
87 BOOST_CHECK(std::holds_alternative<std::string>(props["name"]));
88 }
89
90 auto number_of_uint_values =
91 std::count_if(layer.value_table().begin(),
92 layer.value_table().end(),
93 [](auto v) { return v.type() == vtzero::property_value_type::uint_value; });
94 BOOST_CHECK_EQUAL(number_of_uint_values, 79);
95}
96
97void validate_turn_layer(vtzero::layer layer)
98{

Callers 1

validate_tileFunction · 0.85

Calls 8

to_stringFunction · 0.85
containsMethod · 0.80
typeMethod · 0.80
nameMethod · 0.45
sizeMethod · 0.45
emptyMethod · 0.45
beginMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected