summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/map/transform.cpp22
1 files changed, 22 insertions, 0 deletions
diff --git a/test/map/transform.cpp b/test/map/transform.cpp
index ada20c5872..6b9e960fe6 100644
--- a/test/map/transform.cpp
+++ b/test/map/transform.cpp
@@ -297,3 +297,25 @@ TEST(Transform, MoveBy) {
ASSERT_NEAR(0, trueCenter.latitude, 1.1);
ASSERT_NEAR(0, trueCenter.longitude, 1.1);
}
+
+TEST(Transform, Antimeridian) {
+ MockView view;
+ Transform transform(view, ConstrainMode::HeightOnly);
+ transform.resize({{ 1000, 1000 }});
+ transform.setLatLngZoom({ 0, 0 }, 1);
+
+ const LatLng coordinateSanFrancisco { 37.7833, -122.4167 };
+ ScreenCoordinate pixelSF = transform.latLngToScreenCoordinate(coordinateSanFrancisco);
+ ASSERT_DOUBLE_EQ(151.79409149185352, pixelSF.x);
+ ASSERT_DOUBLE_EQ(383.76774094913071, pixelSF.y);
+
+ transform.setLatLng({ 0, -181 });
+ ScreenCoordinate pixelSFBackwards = transform.latLngToScreenCoordinate(coordinateSanFrancisco);
+ ASSERT_DOUBLE_EQ(666.63617954008976, pixelSFBackwards.x);
+ ASSERT_DOUBLE_EQ(pixelSF.y, pixelSFBackwards.y);
+
+ transform.setLatLng({ 0, 179 });
+ ScreenCoordinate pixelSFForwards = transform.latLngToScreenCoordinate(coordinateSanFrancisco);
+ ASSERT_DOUBLE_EQ(pixelSFBackwards.x, pixelSFForwards.x);
+ ASSERT_DOUBLE_EQ(pixelSFBackwards.y, pixelSFForwards.y);
+}