forked from organicmaps/organicmaps
More tests.
This commit is contained in:
parent
19d7673519
commit
5c83b3debd
2 changed files with 34 additions and 3 deletions
|
@ -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
|
||||
|
|
|
@ -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", ());
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue