summaryrefslogtreecommitdiff
path: root/test/miscellaneous/transform.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/miscellaneous/transform.cpp')
-rw-r--r--test/miscellaneous/transform.cpp36
1 files changed, 34 insertions, 2 deletions
diff --git a/test/miscellaneous/transform.cpp b/test/miscellaneous/transform.cpp
index f06fb56f14..4a8b685564 100644
--- a/test/miscellaneous/transform.cpp
+++ b/test/miscellaneous/transform.cpp
@@ -2,6 +2,7 @@
#include "../fixtures/mock_view.hpp"
#include <mbgl/map/transform.hpp>
+#include <mbgl/util/geo.hpp>
using namespace mbgl;
@@ -193,8 +194,7 @@ TEST(Transform, Anchor) {
ASSERT_DOUBLE_EQ(10, transform.getZoom());
ASSERT_DOUBLE_EQ(0, transform.getAngle());
- const auto size = view.getSize();
- const PrecisionPoint anchorPoint = { size[0] * 0.8, size[1] * 0.3 };
+ const PrecisionPoint anchorPoint = {0, 0};
const LatLng anchorLatLng = transform.getState().pointToLatLng(anchorPoint);
transform.setAngle(M_PI_4, anchorPoint);
@@ -202,3 +202,35 @@ TEST(Transform, Anchor) {
ASSERT_NE(anchorLatLng, transform.getLatLng());
ASSERT_DOUBLE_EQ(anchorLatLng, transform.getState().pointToLatLng(anchorPoint));
}
+
+TEST(Transform, Padding) {
+ MockView view;
+ Transform transform(view, ConstrainMode::HeightOnly);
+ transform.resize({{ 1000, 1000 }});
+
+ ASSERT_DOUBLE_EQ(0, transform.getLatLng().latitude);
+ ASSERT_DOUBLE_EQ(0, transform.getLatLng().longitude);
+
+ transform.setLatLngZoom({ 10, -100 }, 10);
+
+ const LatLng trueCenter = transform.getLatLng();
+ ASSERT_DOUBLE_EQ(10, trueCenter.latitude);
+ ASSERT_DOUBLE_EQ(-100, trueCenter.longitude);
+ ASSERT_DOUBLE_EQ(10, transform.getZoom());
+
+ const LatLng manualShiftedCenter = transform.getState().pointToLatLng({
+ 1000.0 / 2.0,
+ 1000.0 / 4.0,
+ });
+
+ EdgeInsets padding;
+ padding.top = 1000.0 / 2.0;
+ ASSERT_GT(padding.top, 0);
+ ASSERT_TRUE(padding);
+
+ const LatLng shiftedCenter = transform.getLatLng(padding);
+ ASSERT_NE(trueCenter.latitude, shiftedCenter.latitude);
+ ASSERT_DOUBLE_EQ(trueCenter.longitude, shiftedCenter.longitude);
+ ASSERT_DOUBLE_EQ(manualShiftedCenter.latitude, shiftedCenter.latitude);
+ ASSERT_DOUBLE_EQ(manualShiftedCenter.longitude, shiftedCenter.longitude);
+}