From d387cb52418099ff6f34615af27cb06242ad696c Mon Sep 17 00:00:00 2001 From: Nicholas Knize Date: Sun, 15 Jul 2018 09:36:18 -0500 Subject: [PATCH] update TestLatLonShape to handle large number of vertices --- .../lucene/document/TestLatLonShape.java | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java b/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java index 742d03b5131..e1cda5e6d47 100644 --- a/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java +++ b/lucene/sandbox/src/test/org/apache/lucene/document/TestLatLonShape.java @@ -19,8 +19,12 @@ package org.apache.lucene.document; import com.carrotsearch.randomizedtesting.generators.RandomNumbers; import org.apache.lucene.geo.GeoTestUtil; import org.apache.lucene.geo.Polygon; +import org.apache.lucene.index.DirectoryReader; import org.apache.lucene.index.IndexReader; +import org.apache.lucene.index.IndexWriter; +import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.RandomIndexWriter; +import org.apache.lucene.index.SerialMergeScheduler; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.store.Directory; @@ -72,10 +76,20 @@ public class TestLatLonShape extends LuceneTestCase { /** test we can search for a point */ public void testBasicIntersects() throws Exception { - Directory dir = newDirectory(); - RandomIndexWriter writer = new RandomIndexWriter(random(), dir); - int numVertices = TestUtil.nextInt(random(), 200000, 500000); + IndexWriterConfig iwc = newIndexWriterConfig(); + iwc.setMergeScheduler(new SerialMergeScheduler()); + int mbd = iwc.getMaxBufferedDocs(); + if (mbd != -1 && mbd < numVertices/100) { + iwc.setMaxBufferedDocs(numVertices/100); + } + Directory dir; + if (numVertices > 300000) { + dir = newFSDirectory(createTempDir(getClass().getSimpleName())); + } else { + dir = newDirectory(); + } + IndexWriter writer = new IndexWriter(dir, iwc); // add a random polygon without a hole Polygon p = GeoTestUtil.createRegularPolygon(0, 90, atLeast(1000000), numVertices); @@ -94,7 +108,7 @@ public class TestLatLonShape extends LuceneTestCase { ////// search ///// // search an intersecting bbox - IndexReader reader = writer.getReader(); + IndexReader reader = DirectoryReader.open(writer); IndexSearcher searcher = newSearcher(reader); Query q = newRectQuery(FIELDNAME, -1d, 1d, p.minLon, p.maxLon); assertEquals(1, searcher.count(q));