More tests.

This commit is contained in:
Lev Dragunov 2016-04-04 16:31:40 +03:00
parent 19d7673519
commit 5c83b3debd
2 changed files with 34 additions and 3 deletions

View file

@ -169,7 +169,7 @@ void Route::GetStreetNameAfterIdx(uint32_t idx, string & name) const
for (;it != m_streets.cend(); ++it)
if (!it->second.empty())
{
if (m_poly.GetDistanceM(polyIter, m_poly.GetIterToIndex(it->first)) < kSteetNameLinkMeters)
if (m_poly.GetDistanceM(polyIter, m_poly.GetIterToIndex(max(it->first, static_cast<uint32_t>(polyIter.m_ind)))) < kSteetNameLinkMeters)
name = it->second;
return;
}
@ -187,14 +187,14 @@ Route::TStreets::const_iterator Route::GetCurrentStreetNameIterAfter(FollowedPol
TStreets::const_iterator prevIter = curIter;
curIter++;
while (curIter->first<=iter.m_ind)
while (curIter->first < iter.m_ind)
{
++prevIter;
++curIter;
if (curIter==m_streets.cend())
return curIter;
}
return prevIter;
return curIter->first == iter.m_ind ? curIter : prevIter;
}
bool Route::GetCurrentTurn(double & distanceToTurnMeters, turns::TurnItem & turn) const

View file

@ -18,6 +18,7 @@ static vector<m2::PointD> const kTestGeometry({{0, 0}, {0,1}, {1,1}, {1,2}, {1,3
static vector<turns::TurnItem> const kTestTurns({turns::TurnItem(1, turns::TurnDirection::TurnLeft),
turns::TurnItem(2, turns::TurnDirection::TurnRight),
turns::TurnItem(4, turns::TurnDirection::ReachedYourDestination)});
static Route::TStreets const kTestNames({{0,"Street1"}, {1, "Street2"}, {4, "Street3"}});
location::GpsInfo GetGps(double x, double y)
{
@ -157,3 +158,33 @@ UNIT_TEST(NextTurnsTest)
TEST_EQUAL(turnsDist.size(), 1, ());
}
}
UNIT_TEST(RouteNameTest)
{
Route route("TestRouter");
route.SetGeometry(kTestGeometry.begin(), kTestGeometry.end());
vector<turns::TurnItem> turns(kTestTurns);
route.SetTurnInstructions(turns);
Route::TStreets names(kTestNames);
route.SetStreetNames(names);
string name;
route.GetCurrentStreetName(name);
TEST_EQUAL(name, "Street1", ());
route.GetStreetNameAfterIdx(0, name);
TEST_EQUAL(name, "Street1", ());
route.GetStreetNameAfterIdx(1, name);
TEST_EQUAL(name, "Street2", ());
route.GetStreetNameAfterIdx(2, name);
TEST_EQUAL(name, "Street2", ());
route.GetStreetNameAfterIdx(3, name);
TEST_EQUAL(name, "Street2", ());
route.GetStreetNameAfterIdx(4, name);
TEST_EQUAL(name, "Street3", ());
}