summaryrefslogtreecommitdiff
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
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.
-rw-r--r--test/api/annotations.cpp42
-rw-r--r--test/fixtures/annotations/antimeridian_annotation_large/expected.pngbin0 -> 1579 bytes
-rw-r--r--test/fixtures/annotations/antimeridian_annotation_small/expected.pngbin0 -> 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
new file mode 100644
index 0000000000..3e8de0b38c
--- /dev/null
+++ b/test/fixtures/annotations/antimeridian_annotation_large/expected.png
Binary files differ
diff --git a/test/fixtures/annotations/antimeridian_annotation_small/expected.png b/test/fixtures/annotations/antimeridian_annotation_small/expected.png
new file mode 100644
index 0000000000..cfe564feab
--- /dev/null
+++ b/test/fixtures/annotations/antimeridian_annotation_small/expected.png
Binary files differ