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 | |
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.
-rw-r--r-- | test/api/annotations.cpp | 42 | ||||
-rw-r--r-- | test/fixtures/annotations/antimeridian_annotation_large/expected.png | bin | 0 -> 1579 bytes | |||
-rw-r--r-- | test/fixtures/annotations/antimeridian_annotation_small/expected.png | bin | 0 -> 1652 bytes |
3 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; diff --git a/test/fixtures/annotations/antimeridian_annotation_large/expected.png b/test/fixtures/annotations/antimeridian_annotation_large/expected.png Binary files differnew file mode 100644 index 0000000000..3e8de0b38c --- /dev/null +++ b/test/fixtures/annotations/antimeridian_annotation_large/expected.png diff --git a/test/fixtures/annotations/antimeridian_annotation_small/expected.png b/test/fixtures/annotations/antimeridian_annotation_small/expected.png Binary files differnew file mode 100644 index 0000000000..cfe564feab --- /dev/null +++ b/test/fixtures/annotations/antimeridian_annotation_small/expected.png |