@Test public void fromOuterInner_handlesOuterAndInnerLineStringCorrectly() throws Exception { List<Point> outer = new ArrayList<>(); outer.add(Point.fromLngLat(10.0, 2.0)); outer.add(Point.fromLngLat(5.0, 2.0)); outer.add(Point.fromLngLat(3.0, 2.0)); outer.add(Point.fromLngLat(10.0, 2.0)); LineString outerLineString = LineString.fromLngLats(outer); List<Point> inner = new ArrayList<>(); inner.add(Point.fromLngLat(5.0, 2.0)); inner.add(Point.fromLngLat(2.5, 2.0)); inner.add(Point.fromLngLat(1.5, 2.0)); inner.add(Point.fromLngLat(5.0, 2.0)); LineString innerLineString = LineString.fromLngLats(inner); Polygon polygon = Polygon.fromOuterInner(outerLineString, innerLineString); assertEquals(Point.fromLngLat(10.0, 2.0), polygon.coordinates().get(0).get(0)); assertEquals(outerLineString, polygon.outer()); assertEquals(1, polygon.inner().size()); assertEquals(innerLineString, polygon.inner().get(0)); }
@Test public void fromOuterInner_withABoundingBox() throws Exception { List<Point> outer = new ArrayList<>(); outer.add(Point.fromLngLat(10.0, 2.0)); outer.add(Point.fromLngLat(5.0, 2.0)); outer.add(Point.fromLngLat(3.0, 2.0)); outer.add(Point.fromLngLat(10.0, 2.0)); LineString outerLineString = LineString.fromLngLats(outer); List<Point> inner = new ArrayList<>(); inner.add(Point.fromLngLat(5.0, 2.0)); inner.add(Point.fromLngLat(2.5, 2.0)); inner.add(Point.fromLngLat(1.5, 2.0)); inner.add(Point.fromLngLat(5.0, 2.0)); LineString innerLineString = LineString.fromLngLats(inner); BoundingBox bbox = BoundingBox.fromLngLats(1.0, 2.0, 3.0, 4.0); Polygon polygon = Polygon.fromOuterInner(outerLineString, bbox, innerLineString); assertEquals(bbox, polygon.bbox()); assertEquals(outerLineString, polygon.outer()); assertEquals(1, polygon.inner().size()); assertEquals(innerLineString, polygon.inner().get(0)); }