Skip to content

Commit

Permalink
extract often used method combination
Browse files Browse the repository at this point in the history
  • Loading branch information
tyrasd committed Nov 2, 2022
1 parent b8d1097 commit d168a20
Showing 1 changed file with 25 additions and 19 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,12 @@
class ApplyOSMGeometryTest extends FilterTest {
private final GeometryFactory gf = new GeometryFactory();

private Polygon getBoundingBoxPolygon(
double minLon, double minLat, double maxLon, double maxLat) {
return OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(
minLon, minLat, maxLon, maxLat));
}

@Test
void testGeometryTypeFilterPoint() {
FilterExpression expression = parser.parse("geometry:point");
Expand Down Expand Up @@ -115,20 +121,20 @@ void testGeometryFilterArea() {
OSMEntity entity = createTestOSMEntityWay(new long[] {1, 2, 3, 4, 1});
assertFalse(expression.applyOSMGeometry(entity,
// approx 0.3m²
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 5E-6, 5E-6))
getBoundingBoxPolygon(0, 0, 5E-6, 5E-6)
));
assertTrue(expression.applyOSMGeometry(entity,
// approx 1.2m²
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 1E-5, 1E-5))
getBoundingBoxPolygon(0, 0, 1E-5, 1E-5)
));
assertFalse(expression.applyOSMGeometry(entity,
// approx 4.9m²
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 2E-5, 2E-5))
getBoundingBoxPolygon(0, 0, 2E-5, 2E-5)
));
// negated
assertFalse(expression.negate().applyOSMGeometry(entity,
// approx 1.2m²
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 1E-5, 1E-5))
getBoundingBoxPolygon(0, 0, 1E-5, 1E-5)
));
assertTrue(expression.negate().applyOSMGeometry(entity,
// approx 0.3m²
Expand Down Expand Up @@ -178,20 +184,20 @@ void testGeometryFilterPerimeter() {
OSMEntity entity = createTestOSMEntityWay(new long[] {1, 2, 3, 4, 1});
assertFalse(expression.applyOSMGeometry(entity,
// square with approx 0.6m edge length
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 5E-6, 5E-6))
getBoundingBoxPolygon(0, 0, 5E-6, 5E-6)
));
assertTrue(expression.applyOSMGeometry(entity,
// square with approx 1.1m edge length
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 1E-5, 1E-5))
getBoundingBoxPolygon(0, 0, 1E-5, 1E-5)
));
assertFalse(expression.applyOSMGeometry(entity,
// square with approx 2.2m edge length
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 2E-5, 2E-5))
getBoundingBoxPolygon(0, 0, 2E-5, 2E-5)
));
// negated
assertTrue(expression.negate().applyOSMGeometry(entity,
// square with approx 0.6m edge length
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 5E-6, 5E-6))
getBoundingBoxPolygon(0, 0, 5E-6, 5E-6)
));
}

Expand Down Expand Up @@ -258,7 +264,7 @@ void testGeometryFilterVertices() {
Stream.of(new Coordinate(1, 1))
).toArray(Coordinate[]::new);
var geometry = gf.createMultiPolygon(new Polygon[] {
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(-2, -2, -1, -1)),
getBoundingBoxPolygon(-2, -2, -1, -1),
gf.createPolygon(coords) });
tester.accept(expression.applyOSMGeometry(entity, geometry));
};
Expand All @@ -274,20 +280,20 @@ void testGeometryFilterOuters() {
FilterExpression expression = parser.parse("geometry.outers:1");
OSMEntity entity = createTestOSMEntityRelation("type", "multipolygon");
assertFalse(expression.applyOSMGeometry(entity, gf.createMultiPolygon(new Polygon[] {
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2)),
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(3, 3, 4, 4))
getBoundingBoxPolygon(1, 1, 2, 2),
getBoundingBoxPolygon(3, 3, 4, 4)
})));
assertTrue(expression.applyOSMGeometry(entity, gf.createMultiPolygon(new Polygon[] {
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2))
getBoundingBoxPolygon(1, 1, 2, 2)
})));
assertTrue(expression.applyOSMGeometry(entity,
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2))
getBoundingBoxPolygon(1, 1, 2, 2)
));
// range
expression = parser.parse("geometry.outers:(2..)");
assertTrue(expression.applyOSMGeometry(entity, gf.createMultiPolygon(new Polygon[] {
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2)),
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(3, 3, 4, 4))
getBoundingBoxPolygon(1, 1, 2, 2),
getBoundingBoxPolygon(3, 3, 4, 4)
})));
}

Expand All @@ -296,7 +302,7 @@ void testGeometryFilterInners() {
FilterExpression expression = parser.parse("geometry.inners:0");
OSMEntity entity = createTestOSMEntityRelation("type", "multipolygon");
assertTrue(expression.applyOSMGeometry(entity,
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2))
getBoundingBoxPolygon(1, 1, 2, 2)
));
assertFalse(expression.applyOSMGeometry(entity, gf.createPolygon(
OSHDBGeometryBuilder.getGeometry(
Expand All @@ -305,7 +311,7 @@ void testGeometryFilterInners() {
OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2)).getExteriorRing()
})));
assertTrue(expression.applyOSMGeometry(entity, gf.createMultiPolygon(new Polygon[] {
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(1, 1, 2, 2))
getBoundingBoxPolygon(1, 1, 2, 2)
})));
assertFalse(expression.applyOSMGeometry(entity, gf.createMultiPolygon(new Polygon[] {
gf.createPolygon(
Expand Down Expand Up @@ -340,7 +346,7 @@ void testGeometryFilterRoundness() throws ParseException {
FilterExpression expression = parser.parse("geometry.roundness:(0.8..)");
OSMEntity entity = createTestOSMEntityWay(new long[] {});
assertFalse(expression.applyOSMGeometry(entity,
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 1, 1))
getBoundingBoxPolygon(0, 0, 1, 1)
));
var reader = new WKTReader();
assertTrue(expression.applyOSMGeometry(entity, reader.read(regular32gon)));
Expand All @@ -351,7 +357,7 @@ void testGeometryFilterSqareness() throws ParseException {
FilterExpression expression = parser.parse("geometry.squareness:(0.8..)");
OSMEntity entity = createTestOSMEntityWay(new long[] {});
assertTrue(expression.applyOSMGeometry(entity,
OSHDBGeometryBuilder.getGeometry(OSHDBBoundingBox.bboxWgs84Coordinates(0, 0, 1, 1))
getBoundingBoxPolygon(0, 0, 1, 1)
));
var reader = new WKTReader();
assertFalse(expression.applyOSMGeometry(entity, reader.read(regular32gon)));
Expand Down

0 comments on commit d168a20

Please sign in to comment.