Adding integration tests on path with the same start and finish.

This commit is contained in:
Vladimir Byko-Ianko 2016-05-18 13:44:09 +03:00
parent 62985c22ba
commit 30103dd4f1
3 changed files with 34 additions and 2 deletions

View file

@ -54,3 +54,16 @@ UNIT_TEST(RussiaMoscowSalameiNerisPossibleTurnCorrectionBicycleWayTurnTest)
integration::GetNthTurn(route, 0).TestValid().TestDirection(TurnDirection::TurnSlightRight);
}
UNIT_TEST(RussiaMoscowSevTushinoParkBicycleOnePointTurnTest)
{
m2::PointD const point = MercatorBounds::FromLatLon(55.8719, 37.4464);
TRouteResult const routeResult = integration::CalculateRoute(
integration::GetBicycleComponents(), point, {0.0, 0.0}, point);
Route const & route = *routeResult.first;
IRouter::ResultCode const result = routeResult.second;
TEST_EQUAL(result, IRouter::NoError, ());
TEST_EQUAL(route.GetTurns().size(), 0, ());
integration::TestRouteLength(route, 0.0);
}

View file

@ -515,3 +515,16 @@ UNIT_TEST(MoscowChistiePrudiSelectPointsInConnectedGraph)
MercatorBounds::FromLatLon(55.76613, 37.63769), {0., 0.},
MercatorBounds::FromLatLon(55.76593, 37.63893), 134.02);
}
UNIT_TEST(RussiaMoscowSevTushinoParkPedestrianOnePointTurnTest)
{
m2::PointD const point = MercatorBounds::FromLatLon(55.8719, 37.4464);
TRouteResult const routeResult = integration::CalculateRoute(
integration::GetPedestrianComponents(), point, {0.0, 0.0}, point);
Route const & route = *routeResult.first;
IRouter::ResultCode const result = routeResult.second;
TEST_EQUAL(result, IRouter::NoError, ());
integration::TestTurnCount(route, 0);
integration::TestRouteLength(route, 0.0);
}

View file

@ -36,6 +36,8 @@ using TRouterFactory =
namespace
{
double kErrorMeters = 1.0;
double kErrorSeconds = 1.0;
void ChangeMaxNumberOfOpenFiles(size_t n)
{
struct rlimit rlp;
@ -242,7 +244,9 @@ namespace integration
void TestRouteLength(Route const & route, double expectedRouteMeters,
double relativeError)
{
double const delta = expectedRouteMeters * relativeError;
double delta = expectedRouteMeters * relativeError;
if (delta < kErrorMeters)
delta = kErrorMeters;
double const routeMeters = route.GetTotalDistanceMeters();
TEST(my::AlmostEqualAbs(routeMeters, expectedRouteMeters, delta),
("Route length test failed. Expected:", expectedRouteMeters, "have:", routeMeters, "delta:", delta));
@ -250,7 +254,9 @@ namespace integration
void TestRouteTime(Route const & route, double expectedRouteSeconds, double relativeError)
{
double const delta = expectedRouteSeconds * relativeError;
double delta = expectedRouteSeconds * relativeError;
if (delta < kErrorSeconds)
delta = kErrorSeconds;
double const routeSeconds = route.GetTotalTimeSec();
TEST(my::AlmostEqualAbs(routeSeconds, expectedRouteSeconds, delta),
("Route time test failed. Expected:", expectedRouteSeconds, "have:", routeSeconds, "delta:", delta));