New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
join With Intersects test error #164
Comments
Thank you for reporting. We will do further investigation. |
Reviewing the spec, here is what I can deduce as the source/justification of the test. Part of Test "A.1.12 Spatial joins" in OGC 09-025r2 says "Verify that conformance tests OGC 09-026r2, A.7 and A.8 are satisfied." Part of Test "A.8 Test cases for spatial filter" in OGC 09-026r2 says "Verify that one or more additional spatial operators are listed in the filter capabilities document. Submit requests and check that the additional spatial operators work according to their description.". So the method SpatialJoinTests.joinWithIntersects() verifies that if the server lists the Intersect spatial operator amongst its filter capabilities, then the Intersect spatial operator works accordingly. Now since, the method SpatialJoinTests.joinWithIntersects() currently only lists a small set of permutations of geometry types, I agree it is reasonable for the SpatialJoinTests.joinWithIntersects() to be skipped if none of the listed permutations are implemented. @keshav-nangare @dstenger We could, for example, skip the SpatialJoinTests.joinWithIntersects() and then throw an Exception for the Test "A.8 Test cases for spatial filter" to be verified manually. |
The CITE team decided to add an else block to SpatialJoinTests.joinWithIntersects() which is throwing an AssertionError. Further, we will update the documentation by adding a precondition to the test suite. |
Something like this could be added to SpatialJoinTests.joinWithIntersects() : else if (!this.curveProps.isEmpty() && !this.pointProps.isEmpty()) {
// curve property
Iterator<Map.Entry<QName, List<XSElementDeclaration>>> itrCurveProps = this.curveProps.entrySet().iterator();
Entry<QName, List<XSElementDeclaration>> entryCurveProps = itrCurveProps.next();
joinProperties.add(new FeatureProperty(entryCurveProps.getKey(), entryCurveProps.getValue().get(0)));
// point property
Iterator<Map.Entry<QName, List<XSElementDeclaration>>> itrPointProps = this.pointProps.entrySet().iterator();
Entry<QName, List<XSElementDeclaration>> entryPointProps = itrPointProps.next();
joinProperties.add(new FeatureProperty(entryPointProps.getKey(), entryPointProps.getValue().get(0)));
}
else{
Assert.fail("This test has triggered an unexpected Spatial Join condition. The Spatial Join test will need to be applied manually.");
} |
@keshav-nangare Can you please add those changes to the code, test it and create a pull request? |
I have added changes as per the suggestion and created the PR #168. Tested the changes locally with service[1] but test getting skipped. Do we have another service to test these changes? |
@danieluct Is it possible to provide a test service making it possible for us to verify the changes? |
@keshav-nangare In addition to the service provided by @danieluct , please also try this one. |
@dstenger |
[1] https://demo.geo-solutions.it/geoserver/ows?service=wfs&version=2.0.0&request=GetCapabilities Following are the test results after changes:
|
Hi, Alternatively, the test could also include the two geometry intersections still missing (points with points, and curves with curves) |
@danieluct Thank you for your comment. We are fine with skipping the test when the geometry type is not supported and created a new issue: #175 |
The current spatial join implementation at
ets-wfs20/src/main/java/org/opengis/cite/iso19142/joins/SpatialJoinTests.java
Line 175 in 052e3b0
The text was updated successfully, but these errors were encountered: