LUCENE-7225: Fix Geo3DRelations test to use the correct measure of 'truth' in assessing relationships.

This commit is contained in:
Karl Wright 2016-04-16 04:07:10 -04:00
parent e1a5665fee
commit 9ab336ebb3
1 changed files with 12 additions and 6 deletions

View File

@ -195,10 +195,12 @@ public class TestGeo3DPoint extends LuceneTestCase {
} }
GeoPoint[] docs = new GeoPoint[numDocs]; GeoPoint[] docs = new GeoPoint[numDocs];
GeoPoint[] unquantizedDocs = new GeoPoint[numDocs];
for(int docID=0;docID<numDocs;docID++) { for(int docID=0;docID<numDocs;docID++) {
docs[docID] = quantize(new GeoPoint(PlanetModel.WGS84, toRadians(GeoTestUtil.nextLatitude()), toRadians(GeoTestUtil.nextLongitude()))); unquantizedDocs[docID] = new GeoPoint(PlanetModel.WGS84, toRadians(GeoTestUtil.nextLatitude()), toRadians(GeoTestUtil.nextLongitude()));
docs[docID] = quantize(unquantizedDocs[docID]);
if (VERBOSE) { if (VERBOSE) {
System.out.println(" doc=" + docID + ": " + docs[docID]); System.out.println(" doc=" + docID + ": " + docs[docID] + "; unquantized: "+unquantizedDocs[docID]);
} }
} }
@ -253,15 +255,18 @@ public class TestGeo3DPoint extends LuceneTestCase {
// Leaf cell: brute force check all docs that fall within this cell: // Leaf cell: brute force check all docs that fall within this cell:
for(int docID=0;docID<numDocs;docID++) { for(int docID=0;docID<numDocs;docID++) {
GeoPoint point = docs[docID]; GeoPoint point = docs[docID];
GeoPoint mappedPoint = unquantizedDocs[docID];
boolean pointWithinShape = shape.isWithin(point);
boolean mappedPointWithinShape = shape.isWithin(mappedPoint);
if (cell.contains(point)) { if (cell.contains(point)) {
if (shape.isWithin(point)) { if (mappedPointWithinShape) {
if (VERBOSE) { if (VERBOSE) {
log.println(" check doc=" + docID + ": match!"); log.println(" check doc=" + docID + ": match! Actual quantized point within: "+pointWithinShape);
} }
hits.add(docID); hits.add(docID);
} else { } else {
if (VERBOSE) { if (VERBOSE) {
log.println(" check doc=" + docID + ": no match"); log.println(" check doc=" + docID + ": no match. Quantized point within: "+pointWithinShape);
} }
} }
} }
@ -416,7 +421,8 @@ public class TestGeo3DPoint extends LuceneTestCase {
boolean fail = false; boolean fail = false;
for(int docID=0;docID<numDocs;docID++) { for(int docID=0;docID<numDocs;docID++) {
GeoPoint point = docs[docID]; GeoPoint point = docs[docID];
boolean expected = shape.isWithin(point); GeoPoint mappedPoint = unquantizedDocs[docID];
boolean expected = shape.isWithin(mappedPoint);
boolean actual = hits.contains(docID); boolean actual = hits.contains(docID);
if (actual != expected) { if (actual != expected) {
if (actual) { if (actual) {