JSON instruction serialization fix.

This commit is contained in:
Lev Dragunov 2016-08-08 20:32:01 +03:00
parent 65def1a9e2
commit 8986777c58
2 changed files with 18 additions and 1 deletions

View File

@ -50,7 +50,7 @@ const constexpr char *turn_type_names[] = {
"roundabout", "roundabout", "rotary", "rotary", "roundabout turn", "roundabout", "roundabout", "rotary", "rotary", "roundabout turn",
"roundabout turn", "use lane", "invalid", "invalid", "invalid", "roundabout turn", "use lane", "invalid", "invalid", "invalid",
"invalid", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid", "invalid",
"invalid"}; "invalid", "invalid"};
const constexpr char *waypoint_type_names[] = {"invalid", "arrive", "depart"}; const constexpr char *waypoint_type_names[] = {"invalid", "arrive", "depart"};
@ -68,6 +68,7 @@ inline bool hasValidLanes(const guidance::Intersection &intersection)
std::string instructionTypeToString(const TurnType::Enum type) std::string instructionTypeToString(const TurnType::Enum type)
{ {
BOOST_ASSERT(static_cast<std::size_t>(type) < sizeof(turn_type_names)/sizeof(turn_type_names[0]));
return turn_type_names[static_cast<std::size_t>(type)]; return turn_type_names[static_cast<std::size_t>(type)];
} }

View File

@ -0,0 +1,16 @@
#include "engine/api/json_factory.hpp"
#include <boost/test/test_case_template.hpp>
#include <boost/test/unit_test.hpp>
BOOST_AUTO_TEST_SUITE(json_factory)
BOOST_AUTO_TEST_CASE(instructionTypeToString_test_size)
{
using namespace osrm::engine::api::json::detail;
using namespace osrm::extractor::guidance;
BOOST_CHECK_EQUAL(instructionTypeToString(TurnType::Sliproad), "invalid");
}
BOOST_AUTO_TEST_SUITE_END()