Smalyshev has uploaded a new change for review. https://gerrit.wikimedia.org/r/284995
Change subject: Make distance between point and itself be always 0 ...................................................................... Make distance between point and itself be always 0 Change-Id: I9a1caa1f17d640ed822c946d337f9c9f9e073223 --- M blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java M tools/src/test/java/org/wikidata/query/rdf/tool/WikibaseGeoExtensionIntegrationTest.java 2 files changed, 13 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/wikidata/query/rdf refs/changes/95/284995/1 diff --git a/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java b/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java index aa2ec75..51eff05 100644 --- a/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java +++ b/blazegraph/src/main/java/org/wikidata/query/rdf/blazegraph/constraints/WikibaseDistanceBOp.java @@ -62,7 +62,8 @@ final CoordinateDD leftPoint = getCoordinateFromIV(left); final CoordinateDD rightPoint = getCoordinateFromIV(right); // TODO: allow to supply Units - final double distance = leftPoint.distance(rightPoint, UNITS.Kilometers); + final double distance = leftPoint.equals(rightPoint) ? 0 : + leftPoint.distance(rightPoint, UNITS.Kilometers); final BigdataLiteral dist = getValueFactory().createLiteral(distance); return super.asIV(dist, bindingSet); diff --git a/tools/src/test/java/org/wikidata/query/rdf/tool/WikibaseGeoExtensionIntegrationTest.java b/tools/src/test/java/org/wikidata/query/rdf/tool/WikibaseGeoExtensionIntegrationTest.java index 7dd7602..77e969b 100644 --- a/tools/src/test/java/org/wikidata/query/rdf/tool/WikibaseGeoExtensionIntegrationTest.java +++ b/tools/src/test/java/org/wikidata/query/rdf/tool/WikibaseGeoExtensionIntegrationTest.java @@ -117,6 +117,17 @@ } @Test + public void distanceSelf() throws QueryEvaluationException { + TupleQueryResult results = rdfRepository().query( + "SELECT * WHERE {" + + "BIND(\"Point(-81.4167 -80.0)\"^^geo:wktLiteral as ?point)\n" + + "BIND(geof:distance(?point, ?point) AS ?distance)}"); + BindingSet result = results.next(); + // distance between point and itself should be 0 + assertThat(result, binds("distance", new LiteralImpl("0.0", XMLSchema.DOUBLE))); + } + + @Test public void distanceWithUnits() throws QueryEvaluationException { // FIXME: for now, we just accept anything as units and ignore it. We need to do better. TupleQueryResult results = rdfRepository().query( -- To view, visit https://gerrit.wikimedia.org/r/284995 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I9a1caa1f17d640ed822c946d337f9c9f9e073223 Gerrit-PatchSet: 1 Gerrit-Project: wikidata/query/rdf Gerrit-Branch: master Gerrit-Owner: Smalyshev <smalys...@wikimedia.org> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits