diff options
author | Jesse Bounds <jesse@rebounds.net> | 2016-08-16 15:04:12 -0700 |
---|---|---|
committer | Bruno de Oliveira Abinader <bruno@mapbox.com> | 2016-08-19 16:51:01 +0300 |
commit | dfd40b27a54115cdf769abdda3ec4d3a1329758c (patch) | |
tree | 54c000e2c330c753fbc07516e7afdb5aa3503999 /test/api | |
parent | d70eda8504fb1062de449a223489874cb90b57d7 (diff) | |
download | qtlocation-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.cpp | 42 |
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; |