You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by sa...@apache.org on 2016/06/16 18:36:24 UTC
[1/4] lucene-solr:branch_5_5: LUCENE-7291: Fix spatial
HeatmapFacetCounter bug with dateline and large non-point shapes (cherry
picked from commit 7520d79)
Repository: lucene-solr
Updated Branches:
refs/heads/branch_5_5 4f6bddefe -> 1d7ad9094
refs/heads/branch_5x 707bcc9b3 -> f6b0fb95d
refs/heads/branch_6_0 9f513d556 -> a7f2876ec
LUCENE-7291: Fix spatial HeatmapFacetCounter bug with dateline and large non-point shapes
(cherry picked from commit 7520d79)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/5c546537
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/5c546537
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/5c546537
Branch: refs/heads/branch_5_5
Commit: 5c546537d7b8130c05263832baff4946260f6a31
Parents: 4f6bdde
Author: David Smiley <ds...@apache.org>
Authored: Fri Jun 10 13:36:07 2016 -0400
Committer: Steve Rowe <sa...@apache.org>
Committed: Thu Jun 16 14:29:32 2016 -0400
----------------------------------------------------------------------
.../spatial/prefix/HeatmapFacetCounter.java | 24 +++++++++++---------
.../spatial/prefix/HeatmapFacetCounterTest.java | 9 ++++++++
2 files changed, 22 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5c546537/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
----------------------------------------------------------------------
diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
index ba4e65a..d0249f3 100644
--- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
+++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
@@ -201,8 +201,9 @@ public class HeatmapFacetCounter {
int[] pair = new int[2];//output of intersectInterval
for (Map.Entry<Rectangle, Integer> entry : ancestors.entrySet()) {
- Rectangle rect = entry.getKey();
+ Rectangle rect = entry.getKey(); // from a cell (thus doesn't cross DL)
final int count = entry.getValue();
+
//note: we approach this in a way that eliminates int overflow/underflow (think huge cell, tiny heatmap)
intersectInterval(heatMinY, heatMaxY, cellHeight, rows, rect.getMinY(), rect.getMaxY(), pair);
final int startRow = pair[0];
@@ -215,32 +216,33 @@ public class HeatmapFacetCounter {
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
} else {
+ // note: the cell rect might intersect 2 disjoint parts of the heatmap, so we do the left & right separately
+ final int leftColumns = (int) Math.round((180 - heatMinX) / cellWidth);
+ final int rightColumns = heatmap.columns - leftColumns;
//left half of dateline:
- if (rect.getMaxX() >= heatMinX) {
- final int leftColumns = (int) Math.round((180 - heatMinX) / cellWidth) + 1;
+ if (rect.getMaxX() > heatMinX) {
intersectInterval(heatMinX, 180, cellWidth, leftColumns, rect.getMinX(), rect.getMaxX(), pair);
final int startCol = pair[0];
final int endCol = pair[1];
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
}
//right half of dateline
- if (rect.getMinY() <= heatMaxX) {
- final int rightColumns = (int) Math.round(heatMaxX / cellWidth) + 1;
- intersectInterval(0, heatMaxX, cellWidth, rightColumns, rect.getMinX(), rect.getMaxX(), pair);
- final int startCol = pair[0];
- final int endCol = pair[1];
+ if (rect.getMinX() < heatMaxX) {
+ intersectInterval(-180, heatMaxX, cellWidth, rightColumns, rect.getMinX(), rect.getMaxX(), pair);
+ final int startCol = pair[0] + leftColumns;
+ final int endCol = pair[1] + leftColumns;
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
}
}
-
}
return heatmap;
}
- private static void intersectInterval(double heatMin, double heatMax, double heatCellLen, int heatLen,
+ private static void intersectInterval(double heatMin, double heatMax, double heatCellLen, int numCells,
double cellMin, double cellMax,
int[] out) {
+ assert heatMin < heatMax && cellMin < cellMax;
//precondition: we know there's an intersection
if (heatMin >= cellMin) {
out[0] = 0;
@@ -248,7 +250,7 @@ public class HeatmapFacetCounter {
out[0] = (int) Math.round((cellMin - heatMin) / heatCellLen);
}
if (heatMax <= cellMax) {
- out[1] = heatLen - 1;
+ out[1] = numCells - 1;
} else {
out[1] = (int) Math.round((cellMax - heatMin) / heatCellLen) - 1;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/5c546537/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
----------------------------------------------------------------------
diff --git a/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java b/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
index 124af79..38e7ad8 100644
--- a/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
+++ b/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
@@ -83,6 +83,15 @@ public class HeatmapFacetCounterTest extends StrategyTestCase {
}
@Test
+ public void testLucene7291Dateline() throws IOException {
+ grid = new QuadPrefixTree(ctx, 2); // only 2, and we wind up with some big leaf cells
+ strategy = new RecursivePrefixTreeStrategy(grid, getTestClass().getSimpleName());
+ adoc("0", ctx.makeRectangle(-102, -83, 43, 52));
+ commit();
+ validateHeatmapResultLoop(ctx.makeRectangle(179, -179, 62, 63), 2, 100);// HM crosses dateline
+ }
+
+ @Test
public void testQueryCircle() throws IOException {
//overwrite setUp; non-geo bounds is more straight-forward; otherwise 88,88 would actually be practically north,
final SpatialContextFactory spatialContextFactory = new SpatialContextFactory();
[3/4] lucene-solr:branch_5_5: LUCENE-7291: Add 5.5.2 CHANGES entry
Posted by sa...@apache.org.
LUCENE-7291: Add 5.5.2 CHANGES entry
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/1d7ad909
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/1d7ad909
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/1d7ad909
Branch: refs/heads/branch_5_5
Commit: 1d7ad90947699e103de39fded5b78f76a30e449b
Parents: 5c54653
Author: Steve Rowe <sa...@apache.org>
Authored: Thu Jun 16 14:33:24 2016 -0400
Committer: Steve Rowe <sa...@apache.org>
Committed: Thu Jun 16 14:33:24 2016 -0400
----------------------------------------------------------------------
lucene/CHANGES.txt | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/1d7ad909/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index e5ad31e..c1bc8cf 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -43,6 +43,10 @@ Bug Fixes
other ranges had more than one clause matching (Ahmet Arslan,
hossman, Mike McCandless)
+* LUCENE-7291: Spatial heatmap faceting could mis-count when the heatmap crosses the
+ dateline and indexed non-point shapes are much bigger than the heatmap region.
+ (David Smiley)
+
======================= Lucene 5.5.1 =======================
Bug fixes
[4/4] lucene-solr:branch_6_0: LUCENE-7291: Fix spatial
HeatmapFacetCounter bug with dateline and large non-point shapes (cherry
picked from commit 7520d79)
Posted by sa...@apache.org.
LUCENE-7291: Fix spatial HeatmapFacetCounter bug with dateline and large non-point shapes
(cherry picked from commit 7520d79)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/a7f2876e
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/a7f2876e
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/a7f2876e
Branch: refs/heads/branch_6_0
Commit: a7f2876ec5ce9ca5ef271cad97027a5cb5e43619
Parents: 9f513d5
Author: David Smiley <ds...@apache.org>
Authored: Fri Jun 10 13:36:07 2016 -0400
Committer: Steve Rowe <sa...@apache.org>
Committed: Thu Jun 16 14:35:54 2016 -0400
----------------------------------------------------------------------
.../spatial/prefix/HeatmapFacetCounter.java | 34 +++++++++++---------
.../spatial/prefix/HeatmapFacetCounterTest.java | 27 ++++++++++------
2 files changed, 36 insertions(+), 25 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a7f2876e/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
----------------------------------------------------------------------
diff --git a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
index adee2be..c3c98f7 100644
--- a/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
+++ b/lucene/spatial-extras/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
@@ -20,17 +20,17 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
-import org.locationtech.spatial4j.context.SpatialContext;
-import org.locationtech.spatial4j.shape.Point;
-import org.locationtech.spatial4j.shape.Rectangle;
-import org.locationtech.spatial4j.shape.Shape;
-import org.locationtech.spatial4j.shape.SpatialRelation;
import org.apache.lucene.index.IndexReaderContext;
import org.apache.lucene.spatial.prefix.tree.Cell;
import org.apache.lucene.spatial.prefix.tree.CellIterator;
import org.apache.lucene.spatial.prefix.tree.SpatialPrefixTree;
import org.apache.lucene.util.ArrayUtil;
import org.apache.lucene.util.Bits;
+import org.locationtech.spatial4j.context.SpatialContext;
+import org.locationtech.spatial4j.shape.Point;
+import org.locationtech.spatial4j.shape.Rectangle;
+import org.locationtech.spatial4j.shape.Shape;
+import org.locationtech.spatial4j.shape.SpatialRelation;
/**
* Computes spatial facets in two dimensions as a grid of numbers. The data is often visualized as a so-called
@@ -204,8 +204,9 @@ public class HeatmapFacetCounter {
int[] pair = new int[2];//output of intersectInterval
for (Map.Entry<Rectangle, Integer> entry : ancestors.entrySet()) {
- Rectangle rect = entry.getKey();
+ Rectangle rect = entry.getKey(); // from a cell (thus doesn't cross DL)
final int count = entry.getValue();
+
//note: we approach this in a way that eliminates int overflow/underflow (think huge cell, tiny heatmap)
intersectInterval(heatMinY, heatMaxY, cellHeight, rows, rect.getMinY(), rect.getMaxY(), pair);
final int startRow = pair[0];
@@ -218,32 +219,33 @@ public class HeatmapFacetCounter {
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
} else {
+ // note: the cell rect might intersect 2 disjoint parts of the heatmap, so we do the left & right separately
+ final int leftColumns = (int) Math.round((180 - heatMinX) / cellWidth);
+ final int rightColumns = heatmap.columns - leftColumns;
//left half of dateline:
- if (rect.getMaxX() >= heatMinX) {
- final int leftColumns = (int) Math.round((180 - heatMinX) / cellWidth) + 1;
+ if (rect.getMaxX() > heatMinX) {
intersectInterval(heatMinX, 180, cellWidth, leftColumns, rect.getMinX(), rect.getMaxX(), pair);
final int startCol = pair[0];
final int endCol = pair[1];
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
}
//right half of dateline
- if (rect.getMinY() <= heatMaxX) {
- final int rightColumns = (int) Math.round(heatMaxX / cellWidth) + 1;
- intersectInterval(0, heatMaxX, cellWidth, rightColumns, rect.getMinX(), rect.getMaxX(), pair);
- final int startCol = pair[0];
- final int endCol = pair[1];
+ if (rect.getMinX() < heatMaxX) {
+ intersectInterval(-180, heatMaxX, cellWidth, rightColumns, rect.getMinX(), rect.getMaxX(), pair);
+ final int startCol = pair[0] + leftColumns;
+ final int endCol = pair[1] + leftColumns;
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
}
}
-
}
return heatmap;
}
- private static void intersectInterval(double heatMin, double heatMax, double heatCellLen, int heatLen,
+ private static void intersectInterval(double heatMin, double heatMax, double heatCellLen, int numCells,
double cellMin, double cellMax,
int[] out) {
+ assert heatMin < heatMax && cellMin < cellMax;
//precondition: we know there's an intersection
if (heatMin >= cellMin) {
out[0] = 0;
@@ -251,7 +253,7 @@ public class HeatmapFacetCounter {
out[0] = (int) Math.round((cellMin - heatMin) / heatCellLen);
}
if (heatMax <= cellMax) {
- out[1] = heatLen - 1;
+ out[1] = numCells - 1;
} else {
out[1] = (int) Math.round((cellMax - heatMin) / heatCellLen) - 1;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/a7f2876e/lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
----------------------------------------------------------------------
diff --git a/lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java b/lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
index 2de18cc..a38f5b6 100644
--- a/lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
+++ b/lucene/spatial-extras/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
@@ -21,15 +21,6 @@ import java.util.ArrayList;
import java.util.List;
import com.carrotsearch.randomizedtesting.annotations.Repeat;
-import org.locationtech.spatial4j.context.SpatialContext;
-import org.locationtech.spatial4j.context.SpatialContextFactory;
-import org.locationtech.spatial4j.distance.DistanceUtils;
-import org.locationtech.spatial4j.shape.Circle;
-import org.locationtech.spatial4j.shape.Point;
-import org.locationtech.spatial4j.shape.Rectangle;
-import org.locationtech.spatial4j.shape.Shape;
-import org.locationtech.spatial4j.shape.SpatialRelation;
-import org.locationtech.spatial4j.shape.impl.RectangleImpl;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.TotalHitCountCollector;
import org.apache.lucene.spatial.StrategyTestCase;
@@ -39,6 +30,15 @@ import org.apache.lucene.util.Bits;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
+import org.locationtech.spatial4j.context.SpatialContext;
+import org.locationtech.spatial4j.context.SpatialContextFactory;
+import org.locationtech.spatial4j.distance.DistanceUtils;
+import org.locationtech.spatial4j.shape.Circle;
+import org.locationtech.spatial4j.shape.Point;
+import org.locationtech.spatial4j.shape.Rectangle;
+import org.locationtech.spatial4j.shape.Shape;
+import org.locationtech.spatial4j.shape.SpatialRelation;
+import org.locationtech.spatial4j.shape.impl.RectangleImpl;
import static com.carrotsearch.randomizedtesting.RandomizedTest.atMost;
import static com.carrotsearch.randomizedtesting.RandomizedTest.randomIntBetween;
@@ -83,6 +83,15 @@ public class HeatmapFacetCounterTest extends StrategyTestCase {
}
@Test
+ public void testLucene7291Dateline() throws IOException {
+ grid = new QuadPrefixTree(ctx, 2); // only 2, and we wind up with some big leaf cells
+ strategy = new RecursivePrefixTreeStrategy(grid, getTestClass().getSimpleName());
+ adoc("0", ctx.makeRectangle(-102, -83, 43, 52));
+ commit();
+ validateHeatmapResultLoop(ctx.makeRectangle(179, -179, 62, 63), 2, 100);// HM crosses dateline
+ }
+
+ @Test
public void testQueryCircle() throws IOException {
//overwrite setUp; non-geo bounds is more straight-forward; otherwise 88,88 would actually be practically north,
final SpatialContextFactory spatialContextFactory = new SpatialContextFactory();
[2/4] lucene-solr:branch_5x: LUCENE-7291: Fix spatial
HeatmapFacetCounter bug with dateline and large non-point shapes (cherry
picked from commit 7520d79)
Posted by sa...@apache.org.
LUCENE-7291: Fix spatial HeatmapFacetCounter bug with dateline and large non-point shapes
(cherry picked from commit 7520d79)
Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/f6b0fb95
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/f6b0fb95
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/f6b0fb95
Branch: refs/heads/branch_5x
Commit: f6b0fb95dea43f9f508b613cf32f489aaa263c4e
Parents: 707bcc9b
Author: David Smiley <ds...@apache.org>
Authored: Fri Jun 10 13:36:07 2016 -0400
Committer: Steve Rowe <sa...@apache.org>
Committed: Thu Jun 16 14:30:37 2016 -0400
----------------------------------------------------------------------
.../spatial/prefix/HeatmapFacetCounter.java | 24 +++++++++++---------
.../spatial/prefix/HeatmapFacetCounterTest.java | 9 ++++++++
2 files changed, 22 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f6b0fb95/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
----------------------------------------------------------------------
diff --git a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
index ba4e65a..d0249f3 100644
--- a/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
+++ b/lucene/spatial/src/java/org/apache/lucene/spatial/prefix/HeatmapFacetCounter.java
@@ -201,8 +201,9 @@ public class HeatmapFacetCounter {
int[] pair = new int[2];//output of intersectInterval
for (Map.Entry<Rectangle, Integer> entry : ancestors.entrySet()) {
- Rectangle rect = entry.getKey();
+ Rectangle rect = entry.getKey(); // from a cell (thus doesn't cross DL)
final int count = entry.getValue();
+
//note: we approach this in a way that eliminates int overflow/underflow (think huge cell, tiny heatmap)
intersectInterval(heatMinY, heatMaxY, cellHeight, rows, rect.getMinY(), rect.getMaxY(), pair);
final int startRow = pair[0];
@@ -215,32 +216,33 @@ public class HeatmapFacetCounter {
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
} else {
+ // note: the cell rect might intersect 2 disjoint parts of the heatmap, so we do the left & right separately
+ final int leftColumns = (int) Math.round((180 - heatMinX) / cellWidth);
+ final int rightColumns = heatmap.columns - leftColumns;
//left half of dateline:
- if (rect.getMaxX() >= heatMinX) {
- final int leftColumns = (int) Math.round((180 - heatMinX) / cellWidth) + 1;
+ if (rect.getMaxX() > heatMinX) {
intersectInterval(heatMinX, 180, cellWidth, leftColumns, rect.getMinX(), rect.getMaxX(), pair);
final int startCol = pair[0];
final int endCol = pair[1];
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
}
//right half of dateline
- if (rect.getMinY() <= heatMaxX) {
- final int rightColumns = (int) Math.round(heatMaxX / cellWidth) + 1;
- intersectInterval(0, heatMaxX, cellWidth, rightColumns, rect.getMinX(), rect.getMaxX(), pair);
- final int startCol = pair[0];
- final int endCol = pair[1];
+ if (rect.getMinX() < heatMaxX) {
+ intersectInterval(-180, heatMaxX, cellWidth, rightColumns, rect.getMinX(), rect.getMaxX(), pair);
+ final int startCol = pair[0] + leftColumns;
+ final int endCol = pair[1] + leftColumns;
incrementRange(heatmap, startCol, endCol, startRow, endRow, count);
}
}
-
}
return heatmap;
}
- private static void intersectInterval(double heatMin, double heatMax, double heatCellLen, int heatLen,
+ private static void intersectInterval(double heatMin, double heatMax, double heatCellLen, int numCells,
double cellMin, double cellMax,
int[] out) {
+ assert heatMin < heatMax && cellMin < cellMax;
//precondition: we know there's an intersection
if (heatMin >= cellMin) {
out[0] = 0;
@@ -248,7 +250,7 @@ public class HeatmapFacetCounter {
out[0] = (int) Math.round((cellMin - heatMin) / heatCellLen);
}
if (heatMax <= cellMax) {
- out[1] = heatLen - 1;
+ out[1] = numCells - 1;
} else {
out[1] = (int) Math.round((cellMax - heatMin) / heatCellLen) - 1;
}
http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/f6b0fb95/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
----------------------------------------------------------------------
diff --git a/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java b/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
index 124af79..38e7ad8 100644
--- a/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
+++ b/lucene/spatial/src/test/org/apache/lucene/spatial/prefix/HeatmapFacetCounterTest.java
@@ -83,6 +83,15 @@ public class HeatmapFacetCounterTest extends StrategyTestCase {
}
@Test
+ public void testLucene7291Dateline() throws IOException {
+ grid = new QuadPrefixTree(ctx, 2); // only 2, and we wind up with some big leaf cells
+ strategy = new RecursivePrefixTreeStrategy(grid, getTestClass().getSimpleName());
+ adoc("0", ctx.makeRectangle(-102, -83, 43, 52));
+ commit();
+ validateHeatmapResultLoop(ctx.makeRectangle(179, -179, 62, 63), 2, 100);// HM crosses dateline
+ }
+
+ @Test
public void testQueryCircle() throws IOException {
//overwrite setUp; non-geo bounds is more straight-forward; otherwise 88,88 would actually be practically north,
final SpatialContextFactory spatialContextFactory = new SpatialContextFactory();