From 3f3fc7b7723698e44427e2a14a2f4906832800bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Wed, 28 Sep 2016 11:45:33 +0200 Subject: [test] add .test.cpp suffix to test case files --- test/util/projection.test.cpp | 68 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 test/util/projection.test.cpp (limited to 'test/util/projection.test.cpp') diff --git a/test/util/projection.test.cpp b/test/util/projection.test.cpp new file mode 100644 index 0000000000..5efba380b3 --- /dev/null +++ b/test/util/projection.test.cpp @@ -0,0 +1,68 @@ +#include + +#include +#include +#include + +#include + +using namespace mbgl; + +TEST(Projection, MetersPerPixelAtLatitude) { + double zoom = 0; + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(0, zoom), 78271.516964020484); + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(-util::LATITUDE_MAX, zoom), 6752.2284729446501); + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(util::LATITUDE_MAX, zoom), + Projection::getMetersPerPixelAtLatitude(-util::LATITUDE_MAX, zoom)); + + zoom = 20; + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(0, zoom), 0.074645535434742435); + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(-util::LATITUDE_MAX, zoom), 0.0064394268731543065); + + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(std::numeric_limits::lowest(), zoom), + Projection::getMetersPerPixelAtLatitude(std::numeric_limits::max(), zoom)); + + zoom = std::numeric_limits::min(); + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(0, zoom), + Projection::getMetersPerPixelAtLatitude(0, util::MIN_ZOOM)); + + zoom = std::numeric_limits::lowest(); + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(0, zoom), + Projection::getMetersPerPixelAtLatitude(0, util::MIN_ZOOM)); + + zoom = std::numeric_limits::max(); + EXPECT_DOUBLE_EQ(Projection::getMetersPerPixelAtLatitude(0, zoom), + Projection::getMetersPerPixelAtLatitude(0, util::MAX_ZOOM)); +} + +TEST(Projection, ProjectedMeters) { + const auto southWest = LatLng { -util::LATITUDE_MAX, -util::LONGITUDE_MAX }; + const auto northEast = LatLng { util::LATITUDE_MAX, util::LONGITUDE_MAX }; + + auto latLng = LatLng {}; + auto projectedMeters = Projection::projectedMetersForLatLng(latLng); + EXPECT_EQ(projectedMeters.northing, projectedMeters.easting); + EXPECT_EQ(latLng, Projection::latLngForProjectedMeters(projectedMeters)); + + latLng = LatLng { std::numeric_limits::lowest(), std::numeric_limits::lowest() }; + projectedMeters = Projection::projectedMetersForLatLng(latLng); + EXPECT_EQ(projectedMeters, Projection::projectedMetersForLatLng(southWest)); + EXPECT_DOUBLE_EQ(projectedMeters.northing, -20037508.342789274); + EXPECT_DOUBLE_EQ(projectedMeters.easting, -20037508.342789244); + + latLng = LatLng { std::numeric_limits::max(), std::numeric_limits::max() }; + projectedMeters = Projection::projectedMetersForLatLng(latLng); + EXPECT_EQ(projectedMeters, Projection::projectedMetersForLatLng(northEast)); + EXPECT_DOUBLE_EQ(projectedMeters.northing, -Projection::projectedMetersForLatLng(southWest).northing); + EXPECT_DOUBLE_EQ(projectedMeters.easting, -Projection::projectedMetersForLatLng(southWest).easting); + + projectedMeters = ProjectedMeters { std::numeric_limits::lowest(), std::numeric_limits::lowest() }; + latLng = Projection::latLngForProjectedMeters(projectedMeters); + EXPECT_EQ(latLng.latitude, -util::LATITUDE_MAX); + EXPECT_EQ(latLng.longitude, -util::LONGITUDE_MAX); + + projectedMeters = ProjectedMeters { std::numeric_limits::max(), std::numeric_limits::max() }; + latLng = Projection::latLngForProjectedMeters(projectedMeters); + EXPECT_EQ(latLng.latitude, util::LATITUDE_MAX); + EXPECT_EQ(latLng.longitude, util::LONGITUDE_MAX); +} -- cgit v1.2.1