This is an automated email from the ASF dual-hosted git repository.
asf-gitbox-commits pushed a commit to branch geoapi-4.0
in repository https://gitbox.apache.org/repos/asf/sis.git
The following commit(s) were added to refs/heads/geoapi-4.0 by this push:
new f227f345e7 refactor(Geometry): regroup Geometry.buffer operations, fix
locateAlong and locateBetween missing parameter name
f227f345e7 is described below
commit f227f345e70554c6195a7aed49f07ae6ad6424d9
Author: jsorel <[email protected]>
AuthorDate: Fri Sep 18 09:36:59 2026 +0200
refactor(Geometry): regroup Geometry.buffer operations, fix locateAlong and
locateBetween missing parameter name
---
.../main/org/apache/sis/geometries/Empty.java | 10 ---
.../main/org/apache/sis/geometries/Geometry.java | 86 +++++++++++-----------
.../geometries/operation/GeometryProcessor.java | 20 +----
.../sis/geometries/operation/BufferTest.java | 18 -----
.../sis/geometries/operation/LocateAlongTest.java | 3 +-
.../geometries/operation/LocateBetweenTest.java | 3 +-
6 files changed, 49 insertions(+), 91 deletions(-)
diff --git
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Empty.java
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Empty.java
index 589e7ae868..996de45881 100644
---
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Empty.java
+++
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Empty.java
@@ -157,16 +157,6 @@ public sealed interface Empty extends Geometry
return this;
}
- /**
- * Returns {@code this}: there is no position to grow a buffer around.
- *
- * @see ISO 19107:2019 - 6.4.4.24
- */
- @Override
- default Geometry buffer(double distance) {
- return this;
- }
-
/**
* Returns {@code this}: there is no position to grow a buffer around.
*
diff --git
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Geometry.java
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Geometry.java
index d17f5153fa..0d73c65069 100644
---
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Geometry.java
+++
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/Geometry.java
@@ -25,6 +25,8 @@ import
org.apache.sis.geometries.internal.shared.AbstractGeometry;
import org.apache.sis.geometries.mesh.MeshPrimitive;
import org.apache.sis.geometries.operation.GeometryProcessor;
import org.apache.sis.geometries.operation.OperationException;
+import org.apache.sis.measure.Quantities;
+import org.apache.sis.measure.Units;
import static org.opengis.annotation.Specification.ISO_19107;
import org.opengis.annotation.UML;
import org.opengis.geometry.DirectPosition;
@@ -589,12 +591,13 @@ public sealed interface Geometry
* @see GeometryProcessor#buffer(org.apache.sis.geometries.Geometry,
double)
*/
default Geometry buffer(double distance) throws OperationException {
- return new GeometryProcessor().buffer(this, distance);
+ return buffer(Quantities.create(distance, Units.UNITY));
}
/**
* Returns a geometry containing all the positions whose distance to this
geometry
* is smaller than or equal to the given radius.
+ * If the quantity unit is dimensionless, then the CRS unit is assumed.
*
* <p>Constraints:</p>
* <ul>
@@ -608,16 +611,18 @@ public sealed interface Geometry
*
* <p>Difference with ISO-19107, the Length type has been changed to
Quantity to
* handle temporal geometries and crs-less geometries.</p>
+ * <p>Difference with ISO-19107 to match OGC SFA and SQL/MM :
+ * if the quantity unit is dimensionless, then the CRS unit is assumed.
+ * </p>
*
* @param radius radius of the buffer.
* @return buffer around this geometry.
* @throws OperationException if the buffer cannot be computed.
*
* @see GeometryProcessor#buffer(org.apache.sis.geometries.Geometry,
javax.measure.Quantity)
- * @see ISO 19107:2019 - 6.4.4.24, 6.4.8.3, 6.4.9
+ * @see ISO 19107:2019 - buffer & 3Dbuffer - 6.4.4.24, 6.4.8.3, 6.4.9
*/
@UML(identifier="buffer", specification=ISO_19107)
- //@UML(identifier="3Dbuffer", specification=ISO_19107)
default Geometry buffer(Quantity<?> radius) throws OperationException {
return new GeometryProcessor().buffer(this, radius);
}
@@ -637,10 +642,9 @@ public sealed interface Geometry
* @throws OperationException if the convex hull cannot be computed.
*
* @see GeometryProcessor#convexHull(org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.10, 6.4.9
+ * @see ISO 19107:2019 - convexHull & 3DconvexHull - 6.4.4.10, 6.4.9
*/
@UML(identifier="convexHull", specification=ISO_19107)
- //@UML(identifier="3DconvexHull", specification=ISO_19107)
default Geometry convexHull() throws OperationException {
return new GeometryProcessor().convexHull(this);
}
@@ -660,10 +664,9 @@ public sealed interface Geometry
* @throws OperationException if the difference cannot be computed.
*
* @see GeometryProcessor#difference(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.30, 6.4.8.5, 6.4.9
+ * @see ISO 19107:2019 - difference & 3Ddifference - 6.4.4.30, 6.4.8.5,
6.4.9
*/
@UML(identifier="difference", specification=ISO_19107)
- //@UML(identifier="3Ddifference", specification=ISO_19107)
default Geometry difference(Geometry other) throws OperationException {
return new GeometryProcessor().difference(this, other);
}
@@ -687,10 +690,9 @@ public sealed interface Geometry
* @throws OperationException if the distance cannot be computed.
*
* @see GeometryProcessor#distance(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.26, 6.4.8.2, 6.4.9
+ * @see ISO 19107:2019 - distance & 3Ddistance - 6.4.4.26, 6.4.8.2, 6.4.9
*/
@UML(identifier="distance", specification=ISO_19107)
- //@UML(identifier="3Ddistance", specification=ISO_19107)
default Quantity<?> distance(Geometry other) throws OperationException {
return new GeometryProcessor().distance(this, other);
}
@@ -710,10 +712,9 @@ public sealed interface Geometry
* @throws OperationException if the intersection cannot be computed.
*
* @see GeometryProcessor#intersection(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.30, 6.4.8.4, 6.4.9
+ * @see ISO 19107:2019 - intersection & 3Dintersection - 6.4.4.30,
6.4.8.4, 6.4.9
*/
@UML(identifier="intersection", specification=ISO_19107)
- //@UML(identifier="3Dintersection", specification=ISO_19107)
default Geometry intersection(Geometry other) throws OperationException {
return new GeometryProcessor().intersection(this, other);
}
@@ -734,10 +735,9 @@ public sealed interface Geometry
* @throws OperationException if the symmetric difference cannot be
computed.
*
* @see
GeometryProcessor#symDifference(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.30, 6.4.8.6, 6.4.9
+ * @see ISO 19107:2019 - symDifference & 3DsymDifference - 6.4.4.30,
6.4.8.6, 6.4.9
*/
@UML(identifier="symDifference", specification=ISO_19107)
- //@UML(identifier="3DsymDifference", specification=ISO_19107)
default Geometry symDifference(Geometry other) throws OperationException {
return new GeometryProcessor().symDifference(this, other);
}
@@ -757,10 +757,9 @@ public sealed interface Geometry
* @throws OperationException if the union cannot be computed.
*
* @see GeometryProcessor#union(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.30, 6.4.8.7, 6.4.9
+ * @see ISO 19107:2019 - union & 3Dunion - 6.4.4.30, 6.4.8.7, 6.4.9
*/
@UML(identifier="union", specification=ISO_19107)
- //@UML(identifier="3Dunion", specification=ISO_19107)
default Geometry union(Geometry other) throws OperationException {
return new GeometryProcessor().union(this, other);
}
@@ -800,10 +799,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#contains(org.apache.sis.geometries.Geometry,
org.opengis.geometry.DirectPosition)
- * @see ISO 19107:2019 - 6.4.2, 6.4.4.30, 6.4.9
+ * @see ISO 19107:2019 - contains & 3Dcontains - 6.4.2, 6.4.4.30, 6.4.9
*/
@UML(identifier="contains", specification=ISO_19107)
- //@UML(identifier="3Dcontains", specification=ISO_19107)
default boolean contains(DirectPosition element) throws OperationException
{
return new GeometryProcessor().contains(this, element);
}
@@ -823,7 +821,7 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#contains(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.30, 6.4.8.8, 10.8.6.3.2
+ * @see ISO 19107:2019 - contains & 3Dcontains - 6.4.4.30, 6.4.8.8,
10.8.6.3.2
*/
@UML(identifier="contains", specification=ISO_19107)
default boolean contains(Geometry other) throws OperationException {
@@ -845,10 +843,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#crosses(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.6.3.6
+ * @see ISO 19107:2019 - crosses & 3Dcrosses - 6.4.8.8, 6.4.9, 10.8.6.3.6
*/
@UML(identifier="crosses", specification=ISO_19107)
- //@UML(identifier="3Dcrosses", specification=ISO_19107)
default boolean crosses(Geometry other) throws OperationException {
return new GeometryProcessor().crosses(this, other);
}
@@ -867,10 +864,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#disjoint(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.6.3.3
+ * @see ISO 19107:2019 - disjoint & 3Ddisjoint - 6.4.8.8, 6.4.9, 10.8.6.3.3
*/
@UML(identifier="disjoint", specification=ISO_19107)
- //@UML(identifier="3Ddisjoint", specification=ISO_19107)
default boolean disjoint(Geometry other) throws OperationException {
return new GeometryProcessor().disjoint(this, other);
}
@@ -893,10 +889,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#equal(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.27, 6.4.4.30, 6.4.8.8, 6.4.9, 10.8.6.3.1
+ * @see ISO 19107:2019 - equals & 3Dequals - 6.4.4.27, 6.4.4.30, 6.4.8.8,
6.4.9, 10.8.6.3.1
*/
@UML(identifier="equals", specification=ISO_19107)
- //@UML(identifier="3Dequals", specification=ISO_19107)
default boolean equal(Geometry other) throws OperationException {
return new GeometryProcessor().equal(this, other);
}
@@ -915,10 +910,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#intersects(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.4.30, 6.4.8.8, 6.4.9, 10.8.6.3.4
+ * @see ISO 19107:2019 - intersects & 3Dintersects - 6.4.4.30, 6.4.8.8,
6.4.9, 10.8.6.3.4
*/
@UML(identifier="intersects", specification=ISO_19107)
- //@UML(identifier="3Dintersects", specification=ISO_19107)
default boolean intersects(Geometry other) throws OperationException {
return new GeometryProcessor().intersects(this, other);
}
@@ -929,14 +923,20 @@ public sealed interface Geometry
* <p>Difference with ISO 19107: this operation has no equivalent in the
standard,
* which delegates linear referencing to ISO 19148.</p>
*
- * @param mValue measure value at which to locate.
+ * <p>Difference with ISO 13249-3 : since SIS geometries may have multiple
attributes
+ * a name pararemeter has been added.</p>
+ *
+ * <p>Difference with ISO 19148 : since method is not limited to linear
elements</p>
+ *
+ * @param attributeName
+ * @param value measure value at which to locate.
* @return part of this geometry at the given measure.
* @throws OperationException if the location cannot be computed.
*
* @see GeometryProcessor#locateAlong(org.apache.sis.geometries.Geometry,
double)
*/
- default Geometry locateAlong(double mValue) throws OperationException {
- return new GeometryProcessor().locateAlong(this, mValue);
+ default Geometry locateAlong(String attributeName, Number value) throws
OperationException {
+ return new GeometryProcessor().locateAlong(this, attributeName, value);
}
/**
@@ -945,15 +945,20 @@ public sealed interface Geometry
* <p>Difference with ISO 19107: this operation has no equivalent in the
standard,
* which delegates linear referencing to ISO 19148.</p>
*
- * @param mStart measure value where the returned geometry begins.
- * @param mEnd measure value where the returned geometry ends.
+ * <p>Difference with ISO 13249-3 : since SIS geometries may have multiple
attributes
+ * a name pararemeter has been added.</p>
+ *
+ * <p>Difference with ISO 19148 : since method is not limited to linear
elements</p>
+ *
+ * @param start measure value where the returned geometry begins.
+ * @param end measure value where the returned geometry ends.
* @return part of this geometry between the two given measures.
* @throws OperationException if the location cannot be computed.
*
* @see GeometryProcessor#contains(org.apache.sis.geometries.Geometry,
double, double)
*/
- default Geometry locateBetween(double mStart, double mEnd) throws
OperationException {
- return new GeometryProcessor().locateBetween(this, mStart, mEnd);
+ default Geometry locateBetween(String attributeName, Number start, Number
end) throws OperationException {
+ return new GeometryProcessor().locateBetween(this, attributeName,
start, end);
}
/**
@@ -971,10 +976,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#overlaps(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.6.3.8
+ * @see ISO 19107:2019 - overlaps & 3Doverlaps - 6.4.8.8, 6.4.9, 10.8.6.3.8
*/
@UML(identifier="overlaps", specification=ISO_19107)
- //@UML(identifier="3Doverlaps", specification=ISO_19107)
default boolean overlaps(Geometry other) throws OperationException {
return new GeometryProcessor().overlaps(this, other);
}
@@ -1019,10 +1023,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#relate(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry, java.lang.String)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.4, 10.8.5, 10.8.6
+ * @see ISO 19107:2019 - relate & 3Drelate - 6.4.8.8, 6.4.9, 10.8.4,
10.8.5, 10.8.6
*/
@UML(identifier="relate", specification=ISO_19107)
- //@UML(identifier="3Drelate", specification=ISO_19107)
default boolean relate(Geometry other, String matrix) throws
OperationException {
return new GeometryProcessor().relate(this, other, matrix);
}
@@ -1042,10 +1045,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#touches(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.6.3.5
+ * @see ISO 19107:2019 - touches & 3Dtouches - 6.4.8.8, 6.4.9, 10.8.6.3.5
*/
@UML(identifier="touches", specification=ISO_19107)
- //@UML(identifier="3Dtouches", specification=ISO_19107)
default boolean touches(Geometry other) throws OperationException {
return new GeometryProcessor().touches(this, other);
}
@@ -1065,10 +1067,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see GeometryProcessor#within(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.6.3.7
+ * @see ISO 19107:2019 - within & 3Dwithin - 6.4.8.8, 6.4.9, 10.8.6.3.7
*/
@UML(identifier="within", specification=ISO_19107)
- //@UML(identifier="3Dwithin", specification=ISO_19107)
default boolean within(Geometry other) throws OperationException {
return new GeometryProcessor().within(this, other);
}
@@ -1090,10 +1091,9 @@ public sealed interface Geometry
* @throws OperationException if the test cannot be performed.
*
* @see
GeometryProcessor#withinDistance(org.apache.sis.geometries.Geometry,
org.apache.sis.geometries.Geometry, javax.measure.Quantity)
- * @see ISO 19107:2019 - 6.4.8.8, 6.4.9, 10.8.7
+ * @see ISO 19107:2019 - withinDistance & 3DwithinDistance - 6.4.8.8,
6.4.9, 10.8.7
*/
@UML(identifier="withinDistance", specification=ISO_19107)
- //@UML(identifier="3DwithinDistance", specification=ISO_19107)
default boolean withinDistance(Geometry other, Quantity<?> distance)
throws OperationException {
return new GeometryProcessor().withinDistance(this, other, distance);
}
diff --git
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/GeometryProcessor.java
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/GeometryProcessor.java
index 3448540947..002c3c0fce 100644
---
a/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/GeometryProcessor.java
+++
b/incubator/src/org.apache.sis.geometry/main/org/apache/sis/geometries/operation/GeometryProcessor.java
@@ -71,18 +71,6 @@ public final class GeometryProcessor {
public GeometryProcessor(){}
- /**
- * Returns a geometric object that represents all Points whose distance
from this geometric object is less than
- * or equal to distance. Calculations are in the spatial reference system
of this geometric object. Because of the
- * limitations of linear interpolation, there will often be some
relatively small error in this distance,
- * but it should be near the resolution of the coordinates used.
- */
- public Geometry buffer(Geometry geom, double distance) throws
OperationException {
-
- //TODO : fallback on JTS until implemented, this loss the attributes !
- return Geometries.fromJTS(jts(geom).buffer(distance), true);
- }
-
@UML(identifier="buffer", specification=ISO_19107) // section 6.4.4.24 and
6.4.8.3
//@UML(identifier="3Dbuffer", specification=ISO_19107) // section 6.4.9
public Geometry buffer(Geometry geom, Quantity<?> radius) throws
OperationException {
@@ -245,20 +233,16 @@ public final class GeometryProcessor {
/**
* Returns a derived geometry collection value that matches the specified
m coordinate value.
* See Subclause 6.1.2.6 “Measures on Geometry” for more details.
- *
- * TODO : M has been replaced by attributes, change this method
*/
- public Geometry locateAlong(Geometry geom1, double mValue) throws
OperationException {
+ public Geometry locateAlong(Geometry geom1, String attributeName, Number
value) throws OperationException {
throw new UnsupportedOperationException();
}
/**
* Returns a derived geometry collection value that matches the specified
range of m coordinate values inclusively.
* See Subclause 6.1.2.6 “Measures on Geometry” for more details.
- *
- * TODO : M has been replaced by attributes, change this method
*/
- public Geometry locateBetween(Geometry geom1, double mStart, double mEnd)
throws OperationException {
+ public Geometry locateBetween(Geometry geom1, String attributeName, Number
start, Number end) throws OperationException {
throw new UnsupportedOperationException();
}
diff --git
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/BufferTest.java
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/BufferTest.java
index 3ca9c28d15..0a8ce8ff11 100644
---
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/BufferTest.java
+++
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/BufferTest.java
@@ -52,24 +52,6 @@ public class BufferTest {
private static final Entry[] ENTRIES = {
};
- /**
- * Tests {@code buffer(Geometry, double)} on all declared test cases.
- */
- @Test
- public void testBuffer() {
- for (final Entry entry : ENTRIES) {
- try {
- final Geometry result = new
GeometryProcessor().buffer(entry.input(), entry.distance());
- assertNull(entry.error(), "An exception was expected.");
- assertEquals(entry.expected(), result);
- } catch (Exception ex) {
- if (entry.error() == null || !entry.error().isInstance(ex)) {
- throw new AssertionError("Unexpected exception for " +
entry, ex);
- }
- }
- }
- }
-
/**
* The inputs and expected result of a single test of {@code
buffer(Geometry, Quantity)}.
*
diff --git
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateAlongTest.java
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateAlongTest.java
index 2c07148206..b0520f2011 100644
---
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateAlongTest.java
+++
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateAlongTest.java
@@ -39,6 +39,7 @@ public class LocateAlongTest {
* @param error the type of the expected exception, or {@code null} if
the operation should succeed.
*/
private record Entry(Geometry input,
+ String attName,
double mValue,
Geometry expected,
Class<? extends Exception> error)
@@ -58,7 +59,7 @@ public class LocateAlongTest {
public void testLocateAlong() {
for (final Entry entry : ENTRIES) {
try {
- final Geometry result = new
GeometryProcessor().locateAlong(entry.input(), entry.mValue());
+ final Geometry result = new
GeometryProcessor().locateAlong(entry.input(), entry.attName(), entry.mValue());
assertNull(entry.error(), "An exception was expected.");
assertEquals(entry.expected(), result);
} catch (Exception ex) {
diff --git
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateBetweenTest.java
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateBetweenTest.java
index 5beafcdcdc..e423d2dff2 100644
---
a/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateBetweenTest.java
+++
b/incubator/src/org.apache.sis.geometry/test/org/apache/sis/geometries/operation/LocateBetweenTest.java
@@ -40,6 +40,7 @@ public class LocateBetweenTest {
* @param error the type of the expected exception, or {@code null} if
the operation should succeed.
*/
private record Entry(Geometry input,
+ String attName,
double mStart,
double mEnd,
Geometry expected,
@@ -60,7 +61,7 @@ public class LocateBetweenTest {
public void testLocateBetween() {
for (final Entry entry : ENTRIES) {
try {
- final Geometry result = new
GeometryProcessor().locateBetween(entry.input(), entry.mStart(), entry.mEnd());
+ final Geometry result = new
GeometryProcessor().locateBetween(entry.input(), entry.attName(),
entry.mStart(), entry.mEnd());
assertNull(entry.error(), "An exception was expected.");
assertEquals(entry.expected(), result);
} catch (Exception ex) {