💚 added another test case
This commit is contained in:
parent
d2d65bb25b
commit
d183d34b96
1 changed files with 83 additions and 0 deletions
|
@ -1415,6 +1415,89 @@ TEST_CASE("parser class")
|
||||||
});
|
});
|
||||||
CHECK(j_empty_array == json());
|
CHECK(j_empty_array == json());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
SECTION("skip in GeoJSON")
|
||||||
|
{
|
||||||
|
auto geojsonExample = R"(
|
||||||
|
{ "type": "FeatureCollection",
|
||||||
|
"features": [
|
||||||
|
{ "type": "Feature",
|
||||||
|
"geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
|
||||||
|
"properties": {"prop0": "value0"}
|
||||||
|
},
|
||||||
|
{ "type": "Feature",
|
||||||
|
"geometry": {
|
||||||
|
"type": "LineString",
|
||||||
|
"coordinates": [
|
||||||
|
[102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"prop0": "value0",
|
||||||
|
"prop1": 0.0
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ "type": "Feature",
|
||||||
|
"geometry": {
|
||||||
|
"type": "Polygon",
|
||||||
|
"coordinates": [
|
||||||
|
[ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
|
||||||
|
[100.0, 1.0], [100.0, 0.0] ]
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"properties": {
|
||||||
|
"prop0": "value0",
|
||||||
|
"prop1": {"this": "that"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})";
|
||||||
|
|
||||||
|
json::parser_callback_t cb = [&](int depth, json::parse_event_t event, json & parsed)
|
||||||
|
{
|
||||||
|
// skip uninteresting events
|
||||||
|
if (event == json::parse_event_t::value and !parsed.is_primitive())
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (event)
|
||||||
|
{
|
||||||
|
case json::parse_event_t::key:
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case json::parse_event_t::value:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case json::parse_event_t::object_start:
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case json::parse_event_t::object_end:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
case json::parse_event_t::array_start:
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
case json::parse_event_t::array_end:
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
default:
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
auto j = json::parse(geojsonExample, cb, true);
|
||||||
|
CHECK(j == json());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SECTION("constructing from contiguous containers")
|
SECTION("constructing from contiguous containers")
|
||||||
|
|
Loading…
Reference in a new issue