summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMinh Nguyễn <mxn@1ec5.org>2016-01-13 00:47:50 -0800
committerMinh Nguyễn <mxn@1ec5.org>2016-01-14 00:40:03 -0800
commit8bad15bf8785bf7d47eef9f1bf3ab86cfa393481 (patch)
tree9401b99d37cc447dbca519d569008209ea6cbde2 /test
parenta3d4aeefecadc3717dc27a53ae170a4c0e878ce8 (diff)
downloadqtlocation-mapboxgl-8bad15bf8785bf7d47eef9f1bf3ab86cfa393481.tar.gz
[core] Consolidated zoom and angle anchor logic
Made anchor a CameraOption for easeTo().
Diffstat (limited to 'test')
-rw-r--r--test/miscellaneous/transform.cpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/test/miscellaneous/transform.cpp b/test/miscellaneous/transform.cpp
index a5c91b84ef..f06fb56f14 100644
--- a/test/miscellaneous/transform.cpp
+++ b/test/miscellaneous/transform.cpp
@@ -177,3 +177,28 @@ TEST(Transform, ConstrainWidthAndHeight) {
ASSERT_NEAR(85.021422866378742, loc.latitude, 0.0001);
ASSERT_NEAR(179.65667724609358, std::abs(loc.longitude), 0.0001);
}
+
+TEST(Transform, Anchor) {
+ MockView view;
+ Transform transform(view, ConstrainMode::HeightOnly);
+
+ ASSERT_DOUBLE_EQ(0, transform.getLatLng().latitude);
+ ASSERT_DOUBLE_EQ(0, transform.getLatLng().longitude);
+ ASSERT_DOUBLE_EQ(1, transform.getScale());
+
+ transform.setLatLngZoom({ 10, -100 }, 10);
+
+ ASSERT_DOUBLE_EQ(10, transform.getLatLng().latitude);
+ ASSERT_DOUBLE_EQ(-100, transform.getLatLng().longitude);
+ 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 LatLng anchorLatLng = transform.getState().pointToLatLng(anchorPoint);
+ transform.setAngle(M_PI_4, anchorPoint);
+
+ ASSERT_NEAR(M_PI_4, transform.getAngle(), 0.000001);
+ ASSERT_NE(anchorLatLng, transform.getLatLng());
+ ASSERT_DOUBLE_EQ(anchorLatLng, transform.getState().pointToLatLng(anchorPoint));
+}