summaryrefslogtreecommitdiff
path: root/test/api
diff options
context:
space:
mode:
authorJesse Bounds <jesse@rebounds.net>2016-08-16 15:04:12 -0700
committerBruno de Oliveira Abinader <bruno@mapbox.com>2016-08-19 16:51:01 +0300
commitdfd40b27a54115cdf769abdda3ec4d3a1329758c (patch)
tree54c000e2c330c753fbc07516e7afdb5aa3503999 /test/api
parentd70eda8504fb1062de449a223489874cb90b57d7 (diff)
downloadqtlocation-mapboxgl-dfd40b27a54115cdf769abdda3ec4d3a1329758c.tar.gz
[tests] Add tests for shape overlays crossing the antimeridian
This adds two tests: AntimeridianAnnotationSmall: Test that a shape that is represented with +-180 longitudinal values is drawn spanning the antimeridian. In other words, it is rendered as a "small" shape as opposed to one that spans around the world to reach the other side of the antimeridian. This test is currently failing at the time of this commit. AntimeridianAnnotationLarge: Test that a shape that is represented with points that do not cross the +-180 boundary is rendered as a "large" shape. In other words, it is rendered by wrapping around the world to reach the other side of the meridian. This test is currently passing at the time of this commit.
Diffstat (limited to 'test/api')
-rw-r--r--test/api/annotations.cpp42
1 files changed, 42 insertions, 0 deletions
diff --git a/test/api/annotations.cpp b/test/api/annotations.cpp
index 9ec4497588..b6f861f900 100644
--- a/test/api/annotations.cpp
+++ b/test/api/annotations.cpp
@@ -79,6 +79,48 @@ TEST(Annotations, FillAnnotation) {
test.checkRendering("fill_annotation_max_zoom");
}
+TEST(Annotations, AntimeridianAnnotationSmall) {
+ AnnotationTest test;
+
+ double antimeridian = 180;
+ test.map.setLatLngZoom(mbgl::LatLng(0, antimeridian), 0);
+ test.map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"));
+
+ LineString<double> line = {{ { antimeridian, 20 }, { antimeridian, -20 } }};
+ LineAnnotation lineAnnotation { line };
+ lineAnnotation.color = { { 255, 0, 0, 1 } };
+ lineAnnotation.width = { 2 };
+ test.map.addAnnotation(lineAnnotation);
+
+ Polygon<double> polygon = {{ {{ { antimeridian+10, 0 }, { antimeridian - 10, 10 }, { antimeridian-10, -10 } }} }};
+ FillAnnotation polygonAnnotation { polygon };
+ polygonAnnotation.color = { { 0, 0, 255, 1 } };
+ test.map.addAnnotation(polygonAnnotation);
+
+ test.checkRendering("antimeridian_annotation_small");
+}
+
+TEST(Annotations, AntimeridianAnnotationLarge) {
+ AnnotationTest test;
+
+ double antimeridian = 180;
+ test.map.setLatLngZoom(mbgl::LatLng(0, antimeridian), 0);
+ test.map.setStyleJSON(util::read_file("test/fixtures/api/empty.json"));
+
+ LineString<double> line = {{ { antimeridian, 20 }, { antimeridian, -20 } }};
+ LineAnnotation lineAnnotation { line };
+ lineAnnotation.color = { { 255, 0, 0, 1 } };
+ lineAnnotation.width = { 2 };
+ test.map.addAnnotation(lineAnnotation);
+
+ Polygon<double> polygon = {{ {{ { antimeridian-10, 0 }, { -antimeridian+10, 10 }, { -antimeridian+10, -10 } }} }};
+ FillAnnotation polygonAnnotation { polygon };
+ polygonAnnotation.color = { { 0, 0, 255, 1 } };
+ test.map.addAnnotation(polygonAnnotation);
+
+ test.checkRendering("antimeridian_annotation_large");
+}
+
TEST(Annotations, OverlappingFillAnnotation) {
AnnotationTest test;