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
|
// TODO: ulonglong -> size_t not only on Windows but on all 32 bit platforms; unsupported anyway as of now
|
||||||
#ifdef WIN32
|
#ifdef WIN32
|
||||||
destinations_rule = (qi::lit("destinations=") > (qi::ulong_long % ";")[set_destiantions]) |
|
destinations_rule = qi::lit("destinations=all") | (qi::lit("destinations=") > (qi::ulong_long % ";")[set_destiantions]);
|
||||||
qi::lit("destinations=all");
|
sources_rule = qi::lit("sources=all") | (qi::lit("sources=") > (qi::ulong_long % ";")[set_sources]);
|
||||||
sources_rule =
|
|
||||||
(qi::lit("sources=") > (qi::ulong_long % ";")[set_sources]) | qi::lit("sources=all");
|
|
||||||
#else
|
#else
|
||||||
destinations_rule = (qi::lit("destinations=") > (qi::ulong_ % ";")[set_destiantions]) |
|
destinations_rule = qi::lit("destinations=all") | (qi::lit("destinations=") > (qi::ulong_ % ";")[set_destiantions]);
|
||||||
qi::lit("destinations=all");
|
sources_rule = qi::lit("sources=all") | (qi::lit("sources=") > (qi::ulong_ % ";")[set_sources]);
|
||||||
sources_rule =
|
|
||||||
(qi::lit("sources=") > (qi::ulong_ % ";")[set_sources]) | qi::lit("sources=all");
|
|
||||||
#endif
|
#endif
|
||||||
table_rule = destinations_rule | sources_rule;
|
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);
|
CHECK_EQUAL_RANGE(reference_6.coordinates, result_6->coordinates);
|
||||||
|
|
||||||
auto result_7 = parseParameters<RouteParameters>("1,2;3,4?radiuses=;unlimited");
|
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(result_7);
|
||||||
BOOST_CHECK_EQUAL(reference_1.steps, result_7->steps);
|
BOOST_CHECK_EQUAL(reference_7.steps, result_7->steps);
|
||||||
BOOST_CHECK_EQUAL(reference_1.alternatives, result_7->alternatives);
|
BOOST_CHECK_EQUAL(reference_7.alternatives, result_7->alternatives);
|
||||||
BOOST_CHECK_EQUAL(reference_1.geometries, result_7->geometries);
|
BOOST_CHECK_EQUAL(reference_7.geometries, result_7->geometries);
|
||||||
BOOST_CHECK_EQUAL(reference_1.overview, result_7->overview);
|
BOOST_CHECK_EQUAL(reference_7.overview, result_7->overview);
|
||||||
BOOST_CHECK_EQUAL(reference_1.continue_straight, result_7->continue_straight);
|
BOOST_CHECK_EQUAL(reference_7.continue_straight, result_7->continue_straight);
|
||||||
CHECK_EQUAL_RANGE(reference_1.bearings, result_7->bearings);
|
CHECK_EQUAL_RANGE(reference_7.bearings, result_7->bearings);
|
||||||
CHECK_EQUAL_RANGE(reference_1.radiuses, result_7->radiuses);
|
CHECK_EQUAL_RANGE(reference_7.radiuses, result_7->radiuses);
|
||||||
CHECK_EQUAL_RANGE(reference_1.coordinates, result_7->coordinates);
|
CHECK_EQUAL_RANGE(reference_7.coordinates, result_7->coordinates);
|
||||||
|
|
||||||
auto result_8 = parseParameters<RouteParameters>("1,2;3,4?radiuses=;");
|
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);
|
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);
|
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)
|
BOOST_AUTO_TEST_CASE(valid_table_urls)
|
||||||
|
Loading…
Reference in New Issue
Block a user