Fix parser tests and destinations=all / sources=all
This commit is contained in:
parent
a6c7529a4e
commit
82df0ca766
@ -32,15 +32,11 @@ struct TableParametersGrammar final : public BaseParametersGrammar
|
||||
};
|
||||
// TODO: ulonglong -> size_t not only on Windows but on all 32 bit platforms; unsupported anyway as of now
|
||||
#ifdef WIN32
|
||||
destinations_rule = (qi::lit("destinations=") > (qi::ulong_long % ";")[set_destiantions]) |
|
||||
qi::lit("destinations=all");
|
||||
sources_rule =
|
||||
(qi::lit("sources=") > (qi::ulong_long % ";")[set_sources]) | qi::lit("sources=all");
|
||||
destinations_rule = qi::lit("destinations=all") | (qi::lit("destinations=") > (qi::ulong_long % ";")[set_destiantions]);
|
||||
sources_rule = qi::lit("sources=all") | (qi::lit("sources=") > (qi::ulong_long % ";")[set_sources]);
|
||||
#else
|
||||
destinations_rule = (qi::lit("destinations=") > (qi::ulong_ % ";")[set_destiantions]) |
|
||||
qi::lit("destinations=all");
|
||||
sources_rule =
|
||||
(qi::lit("sources=") > (qi::ulong_ % ";")[set_sources]) | qi::lit("sources=all");
|
||||
destinations_rule = qi::lit("destinations=all") | (qi::lit("destinations=") > (qi::ulong_ % ";")[set_destiantions]);
|
||||
sources_rule = qi::lit("sources=all") | (qi::lit("sources=") > (qi::ulong_ % ";")[set_sources]);
|
||||
#endif
|
||||
table_rule = destinations_rule | sources_rule;
|
||||
|
||||
|
@ -196,23 +196,32 @@ BOOST_AUTO_TEST_CASE(valid_route_urls)
|
||||
CHECK_EQUAL_RANGE(reference_6.coordinates, result_6->coordinates);
|
||||
|
||||
auto result_7 = parseParameters<RouteParameters>("1,2;3,4?radiuses=;unlimited");
|
||||
RouteParameters reference_7{};
|
||||
reference_7.coordinates = coords_1;
|
||||
reference_7.radiuses = {boost::none, boost::make_optional(std::numeric_limits<double>::infinity())};
|
||||
BOOST_CHECK(result_7);
|
||||
BOOST_CHECK_EQUAL(reference_1.steps, result_7->steps);
|
||||
BOOST_CHECK_EQUAL(reference_1.alternatives, result_7->alternatives);
|
||||
BOOST_CHECK_EQUAL(reference_1.geometries, result_7->geometries);
|
||||
BOOST_CHECK_EQUAL(reference_1.overview, result_7->overview);
|
||||
BOOST_CHECK_EQUAL(reference_1.continue_straight, result_7->continue_straight);
|
||||
CHECK_EQUAL_RANGE(reference_1.bearings, result_7->bearings);
|
||||
CHECK_EQUAL_RANGE(reference_1.radiuses, result_7->radiuses);
|
||||
CHECK_EQUAL_RANGE(reference_1.coordinates, result_7->coordinates);
|
||||
BOOST_CHECK_EQUAL(reference_7.steps, result_7->steps);
|
||||
BOOST_CHECK_EQUAL(reference_7.alternatives, result_7->alternatives);
|
||||
BOOST_CHECK_EQUAL(reference_7.geometries, result_7->geometries);
|
||||
BOOST_CHECK_EQUAL(reference_7.overview, result_7->overview);
|
||||
BOOST_CHECK_EQUAL(reference_7.continue_straight, result_7->continue_straight);
|
||||
CHECK_EQUAL_RANGE(reference_7.bearings, result_7->bearings);
|
||||
CHECK_EQUAL_RANGE(reference_7.radiuses, result_7->radiuses);
|
||||
CHECK_EQUAL_RANGE(reference_7.coordinates, result_7->coordinates);
|
||||
|
||||
auto result_8 = parseParameters<RouteParameters>("1,2;3,4?radiuses=;");
|
||||
RouteParameters reference_8{};
|
||||
reference_8.coordinates = coords_1;
|
||||
reference_8.radiuses = {boost::none, boost::none};
|
||||
BOOST_CHECK(result_8);
|
||||
CHECK_EQUAL_RANGE(result_8->radiuses, result_7->radiuses);
|
||||
CHECK_EQUAL_RANGE(reference_8.radiuses, result_8->radiuses);
|
||||
|
||||
auto result_9 = parseParameters<RouteParameters>("1,2;3,4?radiuses=");
|
||||
auto result_9 = parseParameters<RouteParameters>("1,2?radiuses=");
|
||||
RouteParameters reference_9{};
|
||||
reference_9.coordinates = coords_1;
|
||||
reference_9.radiuses = {boost::none};
|
||||
BOOST_CHECK(result_9);
|
||||
CHECK_EQUAL_RANGE(result_9->radiuses, result_7->radiuses);
|
||||
CHECK_EQUAL_RANGE(reference_9.radiuses, result_9->radiuses);
|
||||
}
|
||||
|
||||
BOOST_AUTO_TEST_CASE(valid_table_urls)
|
||||
|
Loading…
Reference in New Issue
Block a user