@Test public void bbox_nullWhenNotSet() throws Exception { List<Point> points = new ArrayList<>(); points.add(Point.fromLngLat(1.0, 2.0)); points.add(Point.fromLngLat(2.0, 3.0)); points.add(Point.fromLngLat(3.0, 4.0)); points.add(Point.fromLngLat(1.0, 2.0)); LineString outer = LineString.fromLngLats(points); List<LineString> inner = new ArrayList<>(); inner.add(LineString.fromLngLats(points)); inner.add(LineString.fromLngLats(points)); Polygon polygon = Polygon.fromOuterInner(outer, inner); assertNull(polygon.bbox()); }
@Test public void bbox_returnsCorrectBbox() throws Exception { List<Point> points = new ArrayList<>(); points.add(Point.fromLngLat(1.0, 2.0)); points.add(Point.fromLngLat(2.0, 3.0)); points.add(Point.fromLngLat(3.0, 4.0)); points.add(Point.fromLngLat(1.0, 2.0)); LineString outer = LineString.fromLngLats(points); BoundingBox bbox = BoundingBox.fromLngLats(1.0, 2.0, 3.0, 4.0); List<LineString> inner = new ArrayList<>(); inner.add(LineString.fromLngLats(points)); inner.add(LineString.fromLngLats(points)); Polygon polygon = Polygon.fromOuterInner(outer, bbox, inner); assertNotNull(polygon.bbox()); assertEquals(1.0, polygon.bbox().west(), DELTA); assertEquals(2.0, polygon.bbox().south(), DELTA); assertEquals(3.0, polygon.bbox().east(), DELTA); assertEquals(4.0, polygon.bbox().north(), DELTA); }
@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)); }