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

Reply via email to