org.apache.lucene.geo

## Class BaseXYPointTestCase

- java.lang.Object
- - org.junit.Assert
  - - org.apache.lucene.util.LuceneTestCase
    - - org.apache.lucene.geo.BaseXYPointTestCase

    public abstract class BaseXYPointTestCase
    extends LuceneTestCase

Abstract class to do basic tests for a xy spatial impl (high level fields and queries)

### Nested Class Summary

### Nested classes/interfaces inherited from class org.apache.lucene.util.LuceneTestCase

`LuceneTestCase.AwaitsFix, LuceneTestCase.BadApple, LuceneTestCase.Monster, LuceneTestCase.Nightly, LuceneTestCase.Slow, LuceneTestCase.SuppressCodecs, LuceneTestCase.SuppressFileSystems, LuceneTestCase.SuppressFsync, LuceneTestCase.SuppressReproduceLine, LuceneTestCase.SuppressSysoutChecks, LuceneTestCase.SuppressTempFileChecks, LuceneTestCase.ThrowingRunnable, LuceneTestCase.Weekly`

### Field Summary

Fields
`protected static String` `FIELD_NAME`

### Fields inherited from class org.apache.lucene.util.LuceneTestCase

`assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_SLOW, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_SLOW, TEST_THROTTLING, TEST_WEEKLY, VERBOSE`

### Constructor Summary

Constructors
Constructor and Description
`BaseXYPointTestCase()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected abstract void` `addPointToDoc(String field, Document doc, float x, float y)`
`protected abstract Query` `newDistanceQuery(String field, float centerX, float centerY, float radius)`
`protected abstract Query` `newPolygonQuery(String field, XYPolygon... polygon)`
`protected abstract Query` `newRectQuery(String field, float minX, float maxX, float minY, float maxY)`
`protected XYRectangle` `nextBox()`
`protected XYPolygon` `nextPolygon()`
`protected float` `nextX()`
`protected float` `nextY()`
`protected boolean` `supportsPolygons()` Whether this impl supports polygons.
`void` `testAllXEqual()`
`void` `testAllYEqual()`
`void` `testBoxBasics()` Add a single point and search for it in a box
`void` `testBoxInvalidCoordinates()`
`void` `testBoxNull()` null field name not allowed
`void` `testDistanceBasics()` test we can search for a point
`void` `testDistanceIllegal()` distance query should not accept invalid x/y as origin
`void` `testDistanceInf()` Inf distance queries are not allowed
`void` `testDistanceNaN()` NaN distance queries are not allowed
`void` `testDistanceNegative()` negative distance queries are not allowed
`void` `testDistanceNull()` null field name not allowed
`void` `testEquals()`
`void` `testIndexExtremeValues()` Valid values that should not cause exception
`void` `testIndexInfValues()` Inf: illegal
`void` `testIndexNaNValues()` NaN: illegal
`void` `testLowCardinality()`
`void` `testMultiPolygonBasics()` test we can search for a multi-polygon
`void` `testMultiValued()`
`void` `testPolygonBasics()` test we can search for a polygon
`void` `testPolygonHole()` test we can search for a polygon with a hole (but still includes the doc)
`void` `testPolygonHoleExcludes()` test we can search for a polygon with a hole (that excludes the doc)
`void` `testPolygonNullField()` null field name not allowed
`void` `testRandomBig()`
`void` `testRandomDistance()` Run a few iterations with just 10 docs, hopefully easy to debug
`void` `testRandomDistanceHuge()` Runs with thousands of docs
`void` `testRandomMedium()`
`void` `testRandomTiny()`
`void` `testRectBoundariesAreInclusive()`
`void` `testSamePointManyTimes()`
`void` `testSmallSetDistance()`
`void` `testSmallSetHugeDistance()` Explicitly large
`void` `testSmallSetMultiValued()`
`void` `testSmallSetPoly()`
`void` `testSmallSetPolyWholeSpace()`
`void` `testSmallSetRect()`
`void` `testSmallSetRect2()`
`void` `testSmallSetTinyDistance()`
`void` `testSmallSetWholeSpace()`
`protected void` `verifyRandomDistances(float[] xs, float[] ys)`
`protected void` `verifyRandomPolygons(float[] xs, float[] ys)`
`protected void` `verifyRandomRectangles(float[] xs, float[] ys)`

### Methods inherited from class org.apache.lucene.util.LuceneTestCase

`addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getBaseTempDirForTestClass, getDataInputStream, getDataPath, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, restoreSpins, runWithRestrictedPermissions, setIndexWriterMaxDocs, setUp, setupCPUCoreCount, setupSpins, slowFileExists, tearDown, usually, usually, wrapReader`

### Methods inherited from class org.junit.Assert

`assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThat, assertThat, assertTrue, assertTrue, fail, fail`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### FIELD_NAME

    protected static final String FIELD_NAME

See Also:
  Constant Field Values

### Constructor Detail

#### BaseXYPointTestCase

    public BaseXYPointTestCase()

### Method Detail

#### nextX

    protected float nextX()

#### nextY

    protected float nextY()

#### nextBox

    protected XYRectangle nextBox()

#### nextPolygon

    protected XYPolygon nextPolygon()

#### supportsPolygons

    protected boolean supportsPolygons()

Whether this impl supports polygons.

#### testIndexExtremeValues

    public void testIndexExtremeValues()

Valid values that should not cause exception

#### testIndexNaNValues

    public void testIndexNaNValues()

NaN: illegal

#### testIndexInfValues

    public void testIndexInfValues()

Inf: illegal

#### testBoxBasics

    public void testBoxBasics()
                       throws Exception

Add a single point and search for it in a box

Throws:
  `Exception`

#### testBoxNull

    public void testBoxNull()

null field name not allowed

#### testBoxInvalidCoordinates

    public void testBoxInvalidCoordinates()
                                   throws Exception

Throws:
  `Exception`

#### testDistanceBasics

    public void testDistanceBasics()
                            throws Exception

test we can search for a point

Throws:
  `Exception`

#### testDistanceNull

    public void testDistanceNull()

null field name not allowed

#### testDistanceIllegal

    public void testDistanceIllegal()
                             throws Exception

distance query should not accept invalid x/y as origin

Throws:
  `Exception`

#### testDistanceNegative

    public void testDistanceNegative()

negative distance queries are not allowed

#### testDistanceNaN

    public void testDistanceNaN()

NaN distance queries are not allowed

#### testDistanceInf

    public void testDistanceInf()

Inf distance queries are not allowed

#### testPolygonBasics

    public void testPolygonBasics()
                           throws Exception

test we can search for a polygon

Throws:
  `Exception`

#### testPolygonHole

    public void testPolygonHole()
                         throws Exception

test we can search for a polygon with a hole (but still includes the doc)

Throws:
  `Exception`

#### testPolygonHoleExcludes

    public void testPolygonHoleExcludes()
                                 throws Exception

test we can search for a polygon with a hole (that excludes the doc)

Throws:
  `Exception`

#### testMultiPolygonBasics

    public void testMultiPolygonBasics()
                                throws Exception

test we can search for a multi-polygon

Throws:
  `Exception`

#### testPolygonNullField

    public void testPolygonNullField()

null field name not allowed

#### testSamePointManyTimes

    public void testSamePointManyTimes()
                                throws Exception

Throws:
  `Exception`

#### testLowCardinality

    public void testLowCardinality()
                            throws Exception

Throws:
  `Exception`

#### testAllYEqual

    public void testAllYEqual()
                       throws Exception

Throws:
  `Exception`

#### testAllXEqual

    public void testAllXEqual()
                       throws Exception

Throws:
  `Exception`

#### testMultiValued

    public void testMultiValued()
                         throws Exception

Throws:
  `Exception`

#### testRandomTiny

    public void testRandomTiny()
                        throws Exception

Throws:
  `Exception`

#### testRandomMedium

    public void testRandomMedium()
                          throws Exception

Throws:
  `Exception`

#### testRandomBig

    @LuceneTestCase.Nightly
    public void testRandomBig()
                                               throws Exception

Throws:
  `Exception`

#### addPointToDoc

    protected abstract void addPointToDoc(String field,
                                          Document doc,
                                          float x,
                                          float y)

#### newRectQuery

    protected abstract Query newRectQuery(String field,
                                          float minX,
                                          float maxX,
                                          float minY,
                                          float maxY)

#### newDistanceQuery

    protected abstract Query newDistanceQuery(String field,
                                              float centerX,
                                              float centerY,
                                              float radius)

#### newPolygonQuery

    protected abstract Query newPolygonQuery(String field,
                                             XYPolygon... polygon)

#### verifyRandomRectangles

    protected void verifyRandomRectangles(float[] xs,
                                          float[] ys)
                                   throws Exception

Throws:
  `Exception`

#### verifyRandomDistances

    protected void verifyRandomDistances(float[] xs,
                                         float[] ys)
                                  throws Exception

Throws:
  `Exception`

#### verifyRandomPolygons

    protected void verifyRandomPolygons(float[] xs,
                                        float[] ys)
                                 throws Exception

Throws:
  `Exception`

#### testRectBoundariesAreInclusive

    public void testRectBoundariesAreInclusive()
                                        throws Exception

Throws:
  `Exception`

#### testRandomDistance

    public void testRandomDistance()
                            throws Exception

Run a few iterations with just 10 docs, hopefully easy to debug

Throws:
  `Exception`

#### testRandomDistanceHuge

    @LuceneTestCase.Nightly
    public void testRandomDistanceHuge()
                                                        throws Exception

Runs with thousands of docs

Throws:
  `Exception`

#### testEquals

    public void testEquals()

#### testSmallSetRect

    public void testSmallSetRect()
                          throws Exception

Throws:
  `Exception`

#### testSmallSetRect2

    public void testSmallSetRect2()
                           throws Exception

Throws:
  `Exception`

#### testSmallSetMultiValued

    public void testSmallSetMultiValued()
                                 throws Exception

Throws:
  `Exception`

#### testSmallSetWholeSpace

    public void testSmallSetWholeSpace()
                                throws Exception

Throws:
  `Exception`

#### testSmallSetPoly

    public void testSmallSetPoly()
                          throws Exception

Throws:
  `Exception`

#### testSmallSetPolyWholeSpace

    public void testSmallSetPolyWholeSpace()
                                    throws Exception

Throws:
  `Exception`

#### testSmallSetDistance

    public void testSmallSetDistance()
                              throws Exception

Throws:
  `Exception`

#### testSmallSetTinyDistance

    public void testSmallSetTinyDistance()
                                  throws Exception

Throws:
  `Exception`

#### testSmallSetHugeDistance

    public void testSmallSetHugeDistance()
                                  throws Exception

Explicitly large

Throws:
  `Exception`