forked from organicmaps/organicmaps
[routing] Fix tests for new algorithms and data
This commit is contained in:
parent
a50246e174
commit
448e23b603
6 changed files with 32 additions and 31 deletions
Binary file not shown.
Binary file not shown.
|
@ -87,6 +87,7 @@ UNIT_TEST(Dijkstra_Router_City_Simple)
|
|||
TestDijkstraRouterMWM(finalPos, startPos, expected2, 4);
|
||||
}
|
||||
|
||||
|
||||
UNIT_TEST(Dijkstra_Router_City_ReallyFunnyLoop)
|
||||
{
|
||||
// Uncomment to see debug log.
|
||||
|
@ -95,22 +96,20 @@ UNIT_TEST(Dijkstra_Router_City_ReallyFunnyLoop)
|
|||
RoadPos finalPos[] = { RoadPos(1, true, 0) };
|
||||
RoadPos startPos[] = { RoadPos(1, true, 1) };
|
||||
RoadPos expected1[] = { RoadPos(1, true, 1),
|
||||
RoadPos(8, true, 0),
|
||||
RoadPos(8, true, 1),
|
||||
RoadPos(8, true, 2),
|
||||
RoadPos(5, false, 0),
|
||||
RoadPos(8, true, 3), // algorithm skips 8,2 segment
|
||||
RoadPos(4, false, 0),
|
||||
RoadPos(0, false, 1),
|
||||
RoadPos(0, false, 0),
|
||||
RoadPos(1, true, 0) };
|
||||
TestDijkstraRouterMock(finalPos, startPos, expected1);
|
||||
|
||||
RoadPos expected2[] = { RoadPos(1, true, 1),
|
||||
RoadPos(8, true, 1),
|
||||
RoadPos(8, true, 2),
|
||||
RoadPos(8, true, 3),
|
||||
RoadPos(8, true, 4),
|
||||
RoadPos(2, true, 0),
|
||||
RoadPos(2, true, 1),
|
||||
RoadPos(0, false, 0),
|
||||
RoadPos(1, true, 0) };
|
||||
TestDijkstraRouterMWM(finalPos, startPos, expected2, 9);
|
||||
|
||||
}
|
||||
|
|
|
@ -105,10 +105,10 @@ void FeatureRoadGraphTester::Name2FeatureID(vector<routing::RoadPos> & vec)
|
|||
vec[i].GetPointId());
|
||||
}
|
||||
|
||||
void FeatureRoadGraphTester::GetPossibleTurns(RoadPos const & pos, IRoadGraph::TurnsVectorT & vec)
|
||||
void FeatureRoadGraphTester::GetPossibleTurns(RoadPos const & pos, IRoadGraph::TurnsVectorT & vec, bool noOptimize/* = true*/)
|
||||
{
|
||||
m_graph->GetPossibleTurns(RoadPos(m_mapping.GetId(strings::to_string(pos.GetFeatureId())),
|
||||
pos.IsForward(), pos.GetPointId()), vec);
|
||||
pos.IsForward(), pos.GetPointId()), vec, noOptimize);
|
||||
FeatureID2Name(vec);
|
||||
}
|
||||
|
||||
|
@ -128,6 +128,7 @@ void FeatureRoadGraphTester::ReconstructPath(routing::RoadPos (&arr)[N], vector<
|
|||
|
||||
using namespace routing_test;
|
||||
|
||||
|
||||
UNIT_TEST(FRG_TurnsTest_MWM1)
|
||||
{
|
||||
FeatureRoadGraphTester tester("route_test1.mwm");
|
||||
|
@ -135,20 +136,21 @@ UNIT_TEST(FRG_TurnsTest_MWM1)
|
|||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(0, true, 1), vec);
|
||||
TEST_EQUAL(vec.size(), 0, ());
|
||||
TEST_EQUAL(vec.size(), 1, ());
|
||||
TEST(TestResult(vec, RoadPos(0, true, 0), -1), ());
|
||||
}
|
||||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(0, false, 1), vec);
|
||||
TEST_EQUAL(vec.size(), 7, ());
|
||||
TEST(TestResult(vec, RoadPos(0, false, 2), 5), ());
|
||||
TEST(TestResult(vec, RoadPos(0, false, 3), 10), ());
|
||||
TEST(TestResult(vec, RoadPos(1, true, 1), 5), ());
|
||||
TEST(TestResult(vec, RoadPos(1, false, 2), 5), ());
|
||||
TEST(TestResult(vec, RoadPos(2, true, 0), 10), ());
|
||||
TEST(TestResult(vec, RoadPos(3, false, 0), 15), ());
|
||||
TEST(TestResult(vec, RoadPos(3, true, 2), 15), ());
|
||||
TEST(TestResult(vec, RoadPos(0, false, 2), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(0, false, 3), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(1, true, 1), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(1, false, 2), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(2, true, 0), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(3, false, 0), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(3, true, 2), -1), ());
|
||||
}
|
||||
|
||||
{
|
||||
|
@ -159,7 +161,7 @@ UNIT_TEST(FRG_TurnsTest_MWM1)
|
|||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(1, false, 0), vec);
|
||||
tester.GetPossibleTurns(RoadPos(1, false, 0), vec, false);
|
||||
TEST_EQUAL(vec.size(), 3, ());
|
||||
TEST(TestResult(vec, RoadPos(1, false, 2), 10), ());
|
||||
TEST(TestResult(vec, RoadPos(0, true, 1), 10), ());
|
||||
|
@ -173,7 +175,7 @@ UNIT_TEST(FRG_TurnsTest_MWM2)
|
|||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(0, false, 0), vec);
|
||||
tester.GetPossibleTurns(RoadPos(0, false, 0), vec, false);
|
||||
TEST_EQUAL(vec.size(), 8, ());
|
||||
TEST(TestResult(vec, RoadPos(0, false, 1), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(0, false, 2), -1), ());
|
||||
|
@ -187,7 +189,7 @@ UNIT_TEST(FRG_TurnsTest_MWM2)
|
|||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(8, true, 0), vec);
|
||||
tester.GetPossibleTurns(RoadPos(8, true, 0), vec, false);
|
||||
TEST_EQUAL(vec.size(), 2, ());
|
||||
TEST(TestResult(vec, RoadPos(1, true, 1), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(8, true, 5), -1), ());
|
||||
|
@ -195,7 +197,7 @@ UNIT_TEST(FRG_TurnsTest_MWM2)
|
|||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(2, true, 1), vec);
|
||||
tester.GetPossibleTurns(RoadPos(2, true, 1), vec, false);
|
||||
TEST_EQUAL(vec.size(), 4, ());
|
||||
TEST(TestResult(vec, RoadPos(3, true, 0), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(3, false, 1), -1), ());
|
||||
|
@ -205,7 +207,7 @@ UNIT_TEST(FRG_TurnsTest_MWM2)
|
|||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(3, false, 0), vec);
|
||||
tester.GetPossibleTurns(RoadPos(3, false, 0), vec, false);
|
||||
TEST_EQUAL(vec.size(), 5, ());
|
||||
TEST(TestResult(vec, RoadPos(3, false, 1), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(3, false, 2), -1), ());
|
||||
|
@ -229,7 +231,7 @@ UNIT_TEST(FRG_TurnsTest_MWM2)
|
|||
|
||||
{
|
||||
IRoadGraph::TurnsVectorT vec;
|
||||
tester.GetPossibleTurns(RoadPos(8, true, 3), vec);
|
||||
tester.GetPossibleTurns(RoadPos(8, true, 3), vec, false);
|
||||
TEST_EQUAL(vec.size(), 7, ());
|
||||
TEST(TestResult(vec, RoadPos(8, true, 2), -1), ());
|
||||
TEST(TestResult(vec, RoadPos(5, true, 0), -1), ());
|
||||
|
|
|
@ -39,7 +39,7 @@ public:
|
|||
void FeatureID2Name(vector<routing::RoadPos> & vec);
|
||||
void Name2FeatureID(vector<routing::RoadPos> & vec);
|
||||
|
||||
void GetPossibleTurns(routing::RoadPos const & pos, routing::IRoadGraph::TurnsVectorT & vec);
|
||||
void GetPossibleTurns(routing::RoadPos const & pos, routing::IRoadGraph::TurnsVectorT & vec, bool noOptimize = true);
|
||||
|
||||
template <size_t N>
|
||||
void ReconstructPath(routing::RoadPos (&arr)[N], vector<m2::PointD> & vec);
|
||||
|
|
|
@ -159,21 +159,21 @@ void InitRoadGraphMockSourceWithTest2(RoadGraphMockSource & graph)
|
|||
|
||||
RoadInfo ri1;
|
||||
ri1.m_bothSides = false;
|
||||
ri1.m_speedMS = 20;
|
||||
ri1.m_speedMS = 40;
|
||||
ri1.m_points.push_back(m2::PointD(0, 0));
|
||||
ri1.m_points.push_back(m2::PointD(5, 10));
|
||||
ri1.m_points.push_back(m2::PointD(5, 40));
|
||||
|
||||
RoadInfo ri2;
|
||||
ri2.m_bothSides = false;
|
||||
ri2.m_speedMS = 20;
|
||||
ri2.m_speedMS = 40;
|
||||
ri2.m_points.push_back(m2::PointD(12, 25));
|
||||
ri2.m_points.push_back(m2::PointD(10, 10));
|
||||
ri2.m_points.push_back(m2::PointD(10, 0));
|
||||
|
||||
RoadInfo ri3;
|
||||
ri3.m_bothSides = true;
|
||||
ri3.m_speedMS = 30;
|
||||
ri3.m_speedMS = 40;
|
||||
ri3.m_points.push_back(m2::PointD(5, 10));
|
||||
ri3.m_points.push_back(m2::PointD(10, 10));
|
||||
ri3.m_points.push_back(m2::PointD(70, 10));
|
||||
|
@ -181,13 +181,13 @@ void InitRoadGraphMockSourceWithTest2(RoadGraphMockSource & graph)
|
|||
|
||||
RoadInfo ri4;
|
||||
ri4.m_bothSides = true;
|
||||
ri4.m_speedMS = 20;
|
||||
ri4.m_speedMS = 40;
|
||||
ri4.m_points.push_back(m2::PointD(25, 0));
|
||||
ri4.m_points.push_back(m2::PointD(27, 25));
|
||||
|
||||
RoadInfo ri5;
|
||||
ri5.m_bothSides = true;
|
||||
ri5.m_speedMS = 30;
|
||||
ri5.m_speedMS = 40;
|
||||
ri5.m_points.push_back(m2::PointD(35, 0));
|
||||
ri5.m_points.push_back(m2::PointD(37, 30));
|
||||
ri5.m_points.push_back(m2::PointD(70, 30));
|
||||
|
@ -195,20 +195,20 @@ void InitRoadGraphMockSourceWithTest2(RoadGraphMockSource & graph)
|
|||
|
||||
RoadInfo ri6;
|
||||
ri6.m_bothSides = true;
|
||||
ri6.m_speedMS = 20;
|
||||
ri6.m_speedMS = 40;
|
||||
ri6.m_points.push_back(m2::PointD(70, 0));
|
||||
ri6.m_points.push_back(m2::PointD(70, 10));
|
||||
ri6.m_points.push_back(m2::PointD(70, 30));
|
||||
|
||||
RoadInfo ri7;
|
||||
ri7.m_bothSides = true;
|
||||
ri7.m_speedMS = 20;
|
||||
ri7.m_speedMS = 40;
|
||||
ri7.m_points.push_back(m2::PointD(39, 55));
|
||||
ri7.m_points.push_back(m2::PointD(80, 55));
|
||||
|
||||
RoadInfo ri8;
|
||||
ri8.m_bothSides = false;
|
||||
ri8.m_speedMS = 30;
|
||||
ri8.m_speedMS = 40;
|
||||
ri8.m_points.push_back(m2::PointD(5, 40));
|
||||
ri8.m_points.push_back(m2::PointD(18, 55));
|
||||
ri8.m_points.push_back(m2::PointD(39, 55));
|
||||
|
|
Loading…
Add table
Reference in a new issue