summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAnsis Brammanis <brammanis@gmail.com>2015-08-27 14:00:43 -0400
committerAnsis Brammanis <brammanis@gmail.com>2015-08-27 14:00:43 -0400
commitd703e58c79eb5626f2733ab2213b23c45ab64f74 (patch)
tree0a62fd069170c649cab56433bcf392044a26d80e /test
parent53c21020e4ac485eb1d44c82df98d2035f1a36da (diff)
downloadqtlocation-mapboxgl-d703e58c79eb5626f2733ab2213b23c45ab64f74.tar.gz
add Point <--> LatLng conversion tests
Diffstat (limited to 'test')
-rw-r--r--test/miscellaneous/transform.cpp32
1 files changed, 32 insertions, 0 deletions
diff --git a/test/miscellaneous/transform.cpp b/test/miscellaneous/transform.cpp
index 5d00bfd20b..426e9e534d 100644
--- a/test/miscellaneous/transform.cpp
+++ b/test/miscellaneous/transform.cpp
@@ -105,3 +105,35 @@ TEST(Transform, InvalidBearing) {
ASSERT_DOUBLE_EQ(2, transform.getScale());
ASSERT_DOUBLE_EQ(2, transform.getAngle());
}
+
+TEST(Transform, PerspectiveProjection) {
+ MockView view;
+ Transform transform(view);
+
+ transform.resize({{ 1000, 1000 }});
+ transform.setScale(1024);
+ transform.setPitch(0.9);
+ transform.setLatLng(LatLng(38, -77));
+
+ // expected values are from mapbox-gl-js
+
+ LatLng loc = transform.getState().pointToLatLng({ 500, 500 });
+ ASSERT_NEAR(-77, loc.longitude, 0.0001);
+ ASSERT_NEAR(38, loc.latitude, 0.0001);
+
+ loc = transform.getState().pointToLatLng({ 0, 1000 });
+ ASSERT_NEAR(-77.59198961199148, loc.longitude, 0.0002);
+ ASSERT_NEAR(38.74661326302018, loc.latitude, 0.0001);
+
+ loc = transform.getState().pointToLatLng({ 1000, 0 });
+ ASSERT_NEAR(-76.75823239205641, loc.longitude, 0.0001);
+ ASSERT_NEAR(37.692872969426375, loc.latitude, 0.0001);
+
+ vec2<double> point = transform.getState().latLngToPoint({38.74661326302018, -77.59198961199148});
+ ASSERT_NEAR(point.x, 0, 0.01);
+ ASSERT_NEAR(point.y, 1000, 0.01);
+
+ point = transform.getState().latLngToPoint({37.692872969426375, -76.75823239205641});
+ ASSERT_NEAR(point.x, 1000, 0.02);
+ ASSERT_NEAR(point.y, 0, 0.02);
+}