From 0314a46ee411b97810d49908ab110bbef049e7b7 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 16 Mar 2016 17:45:00 -0700 Subject: [core] Tighten LatLng and other geo.hpp classes * Remove LatLng::null and enforce invariants * Remove unnecessary operator bool() --- test/map/transform.test.cpp | 46 +------------------------------------------ test/util/projection.test.cpp | 17 ++++++---------- 2 files changed, 7 insertions(+), 56 deletions(-) (limited to 'test') diff --git a/test/map/transform.test.cpp b/test/map/transform.test.cpp index 5bff4ee5ef..b5c92abdcb 100644 --- a/test/map/transform.test.cpp +++ b/test/map/transform.test.cpp @@ -44,40 +44,6 @@ TEST(Transform, InvalidScale) { ASSERT_DOUBLE_EQ(2, transform.getScale()); } -TEST(Transform, InvalidLatLng) { - Transform transform; - - ASSERT_DOUBLE_EQ(0, transform.getLatLng().latitude); - ASSERT_DOUBLE_EQ(0, transform.getLatLng().longitude); - ASSERT_DOUBLE_EQ(1, transform.getScale()); - - transform.setScale(2 << 0); - transform.setLatLng({ 8, 10 }); - - ASSERT_DOUBLE_EQ(8, transform.getLatLng().latitude); - ASSERT_DOUBLE_EQ(10, transform.getLatLng().longitude); - ASSERT_DOUBLE_EQ(2, transform.getScale()); - - transform.setLatLngZoom({ 10, 8 }, 2); - - ASSERT_DOUBLE_EQ(10, transform.getLatLng().latitude); - ASSERT_DOUBLE_EQ(8, transform.getLatLng().longitude); - ASSERT_DOUBLE_EQ(4, transform.getScale()); - - const double invalid = std::nan(""); - transform.setLatLngZoom({ invalid, 8 }, 2); - - ASSERT_DOUBLE_EQ(10, transform.getLatLng().latitude); - ASSERT_DOUBLE_EQ(8, transform.getLatLng().longitude); - ASSERT_DOUBLE_EQ(4, transform.getScale()); - - transform.setLatLngZoom({ 10, invalid }, 2); - - ASSERT_DOUBLE_EQ(10, transform.getLatLng().latitude); - ASSERT_DOUBLE_EQ(8, transform.getLatLng().longitude); - ASSERT_DOUBLE_EQ(4, transform.getScale()); -} - TEST(Transform, InvalidBearing) { Transform transform; @@ -349,17 +315,7 @@ TEST(Transform, Padding) { 1000.0 / 4.0, }); - EdgeInsets padding; - - padding.top = 0; - ASSERT_FALSE(bool(padding)); - - padding.top = NAN; - ASSERT_FALSE(bool(padding)); - - padding.top = 1000.0 / 2.0; - ASSERT_TRUE(bool(padding)); - + EdgeInsets padding(1000.0 / 2.0, 0, 0, 0); const LatLng shiftedCenter = transform.getLatLng(padding); ASSERT_NE(trueCenter.latitude, shiftedCenter.latitude); ASSERT_NEAR(trueCenter.longitude, shiftedCenter.longitude, 1e-9); diff --git a/test/util/projection.test.cpp b/test/util/projection.test.cpp index 5efba380b3..260d12edfe 100644 --- a/test/util/projection.test.cpp +++ b/test/util/projection.test.cpp @@ -36,25 +36,20 @@ TEST(Projection, MetersPerPixelAtLatitude) { } 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)); + const auto southWest = LatLng { -util::LATITUDE_MAX, -util::LONGITUDE_MAX }; + 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); + const auto northEast = LatLng { util::LATITUDE_MAX, util::LONGITUDE_MAX }; + projectedMeters = Projection::projectedMetersForLatLng(northEast); + EXPECT_DOUBLE_EQ(projectedMeters.northing, 20037508.342789274); + EXPECT_DOUBLE_EQ(projectedMeters.easting, 20037508.342789244); projectedMeters = ProjectedMeters { std::numeric_limits::lowest(), std::numeric_limits::lowest() }; latLng = Projection::latLngForProjectedMeters(projectedMeters); -- cgit v1.2.1