Regression test for #3516

This commit is contained in:
Michael Krasnyk 2017-01-17 13:03:36 +01:00 committed by Patrick Niklaus
parent a40abacfca
commit c03aa8a273

View File

@ -3,6 +3,7 @@
#include "util/bearing.hpp"
#include "util/coordinate_calculation.hpp"
#include "util/web_mercator.hpp"
#include <osrm/coordinate.hpp>
@ -386,4 +387,22 @@ BOOST_AUTO_TEST_CASE(consistent_invalid_bearing_result)
BOOST_CHECK_EQUAL(0., util::coordinate_calculation::bearing(pos3, pos3));
}
// Regression test for bug captured in #3516
BOOST_AUTO_TEST_CASE(regression_test_3516)
{
Coordinate u(FloatLongitude{-73.989687}, FloatLatitude{40.752288});
Coordinate v(FloatLongitude{-73.990134}, FloatLatitude{40.751658});
Coordinate q(FloatLongitude{-73.99039}, FloatLatitude{40.75171});
BOOST_CHECK_EQUAL(Coordinate{web_mercator::toWGS84(web_mercator::fromWGS84(u))}, u);
BOOST_CHECK_EQUAL(Coordinate{web_mercator::toWGS84(web_mercator::fromWGS84(v))}, v);
double ratio;
Coordinate nearest_location;
coordinate_calculation::perpendicularDistance(u, v, q, nearest_location, ratio);
BOOST_CHECK_EQUAL(ratio, 1.);
BOOST_CHECK_EQUAL(nearest_location, v);
}
BOOST_AUTO_TEST_SUITE_END()