Merge branch 'develop' into feature/sax2
This commit is contained in:
		
						commit
						7c1a788893
					
				
					 2 changed files with 83 additions and 81 deletions
				
			
		| 
						 | 
				
			
			@ -1528,88 +1528,90 @@ TEST_CASE("parser class")
 | 
			
		|||
            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())
 | 
			
		||||
        /*
 | 
			
		||||
                SECTION("skip in GeoJSON")
 | 
			
		||||
                {
 | 
			
		||||
                    return false;
 | 
			
		||||
                    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, 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());
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                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")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -152,7 +152,7 @@ TEST_CASE("UBJSON")
 | 
			
		|||
                    numbers.push_back(-10000000);
 | 
			
		||||
                    numbers.push_back(-100000000);
 | 
			
		||||
                    numbers.push_back(-1000000000);
 | 
			
		||||
                    numbers.push_back(-2147483648);
 | 
			
		||||
                    numbers.push_back(-2147483648L);
 | 
			
		||||
                    for (auto i : numbers)
 | 
			
		||||
                    {
 | 
			
		||||
                        CAPTURE(i);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue