org.apache.lucene.index

## Class BasePostingsFormatTestCase

- java.lang.Object
- - org.junit.Assert
  - - org.apache.lucene.util.LuceneTestCase
    - - org.apache.lucene.index.BasePostingsFormatTestCase

    public abstract class BasePostingsFormatTestCase
    extends LuceneTestCase

Abstract class to do basic tests for a postings format. NOTE: This test focuses on the postings (docs/freqs/positions/payloads/offsets) impl, not the terms dict. The [stretch] goal is for this test to be so thorough in testing a new PostingsFormat that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given PostingsFormat that this test fails to catch then this test needs to be improved!

### 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 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
`BasePostingsFormatTestCase()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`protected void` `addRandomFields(Document doc)` Add random fields to the provided document.
`static void` `afterClass()`
`protected <D extends Directory> D` `applyCreatedVersionMajor(D d)` Set the created version of the given `Directory` and return it.
`protected void` `assertReused(String field, PostingsEnum p1, PostingsEnum p2)`
`protected static void` `checkReuse(TermsEnum termsEnum, int firstFlags, int secondFlags, boolean shouldReuse)`
`static void` `createPostings()`
`protected Collection<String>` `excludedExtensionsFromByteCounts()` Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content.
`protected abstract Codec` `getCodec()` Returns the codec to run tests against
`protected int` `getCreatedVersionMajor()` Returns the major version that this codec is compatible with.
`protected boolean` `isPostingsEnumReuseImplemented()`
`protected DirectoryReader` `maybeWrapWithMergingReader(DirectoryReader r)`
`protected boolean` `mergeIsStable()`
`void` `setUp()` For subclasses to override.
`protected boolean` `shouldTestMergeInstance()` Returns `false` if only the regular fields reader should be tested, and `true` if only the merge instance should be tested.
`void` `tearDown()` For subclasses to override.
`void` `testAskForPositionsWhenNotThere()`
`void` `testDidntWantFreqsButAskedAnyway()`
`void` `testDocsAndFreqs()`
`void` `testDocsAndFreqsAndPositions()`
`void` `testDocsAndFreqsAndPositionsAndOffsets()`
`void` `testDocsAndFreqsAndPositionsAndOffsetsAndPayloads()`
`void` `testDocsAndFreqsAndPositionsAndPayloads()`
`void` `testDocsOnly()`
`void` `testEmptyFieldAndEmptyTerm()`
`void` `testGhosts()`
`void` `testInvertedWrite()`
`void` `testJustEmptyField()`
`void` `testLevel2Ghosts()`
`void` `testMergeStability()` The purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.
`void` `testMultiClose()` Calls close multiple times on closeable codec apis
`void` `testPostingsEnumAll()`
`void` `testPostingsEnumDocsOnly()`
`void` `testPostingsEnumFreqs()`
`void` `testPostingsEnumOffsets()`
`void` `testPostingsEnumPayloads()`
`void` `testPostingsEnumPositions()`
`void` `testPostingsEnumReuse()`
`void` `testRamBytesUsed()` Test the accuracy of the ramBytesUsed estimations.
`void` `testRandom()`
`void` `testRandomExceptions()` Tests exception handling on write and openInput/createOutput

### 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, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, 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, setupCPUCoreCount, setupSpins, slowFileExists, 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`

### Constructor Detail

#### BasePostingsFormatTestCase

    public BasePostingsFormatTestCase()

### Method Detail

#### createPostings

    public static void createPostings()
                               throws IOException

Throws:
  `IOException`

#### afterClass

    public static void afterClass()
                           throws Exception

Throws:
  `Exception`

#### testDocsOnly

    public void testDocsOnly()
                      throws Exception

Throws:
  `Exception`

#### testDocsAndFreqs

    public void testDocsAndFreqs()
                          throws Exception

Throws:
  `Exception`

#### testDocsAndFreqsAndPositions

    public void testDocsAndFreqsAndPositions()
                                      throws Exception

Throws:
  `Exception`

#### testDocsAndFreqsAndPositionsAndPayloads

    public void testDocsAndFreqsAndPositionsAndPayloads()
                                                 throws Exception

Throws:
  `Exception`

#### testDocsAndFreqsAndPositionsAndOffsets

    public void testDocsAndFreqsAndPositionsAndOffsets()
                                                throws Exception

Throws:
  `Exception`

#### testDocsAndFreqsAndPositionsAndOffsetsAndPayloads

    public void testDocsAndFreqsAndPositionsAndOffsetsAndPayloads()
                                                           throws Exception

Throws:
  `Exception`

#### testRandom

    public void testRandom()
                    throws Exception

Throws:
  `Exception`

#### isPostingsEnumReuseImplemented

    protected boolean isPostingsEnumReuseImplemented()

#### testPostingsEnumReuse

    public void testPostingsEnumReuse()
                               throws Exception

Throws:
  `Exception`

#### checkReuse

    protected static void checkReuse(TermsEnum termsEnum,
                                     int firstFlags,
                                     int secondFlags,
                                     boolean shouldReuse)
                              throws IOException

Throws:
  `IOException`

#### testJustEmptyField

    public void testJustEmptyField()
                            throws Exception

Throws:
  `Exception`

#### testEmptyFieldAndEmptyTerm

    public void testEmptyFieldAndEmptyTerm()
                                    throws Exception

Throws:
  `Exception`

#### testDidntWantFreqsButAskedAnyway

    public void testDidntWantFreqsButAskedAnyway()
                                          throws Exception

Throws:
  `Exception`

#### testAskForPositionsWhenNotThere

    public void testAskForPositionsWhenNotThere()
                                         throws Exception

Throws:
  `Exception`

#### testGhosts

    public void testGhosts()
                    throws Exception

Throws:
  `Exception`

#### testLevel2Ghosts

    public void testLevel2Ghosts()
                          throws Exception

Throws:
  `Exception`

#### testInvertedWrite

    public void testInvertedWrite()
                           throws Exception

Throws:
  `Exception`

#### assertReused

    protected void assertReused(String field,
                                PostingsEnum p1,
                                PostingsEnum p2)

#### testPostingsEnumDocsOnly

    public void testPostingsEnumDocsOnly()
                                  throws Exception

Throws:
  `Exception`

#### testPostingsEnumFreqs

    public void testPostingsEnumFreqs()
                               throws Exception

Throws:
  `Exception`

#### testPostingsEnumPositions

    public void testPostingsEnumPositions()
                                   throws Exception

Throws:
  `Exception`

#### testPostingsEnumOffsets

    public void testPostingsEnumOffsets()
                                 throws Exception

Throws:
  `Exception`

#### testPostingsEnumPayloads

    public void testPostingsEnumPayloads()
                                  throws Exception

Throws:
  `Exception`

#### testPostingsEnumAll

    public void testPostingsEnumAll()
                             throws Exception

Throws:
  `Exception`

#### addRandomFields

    protected void addRandomFields(Document doc)

Add random fields to the provided document.

#### getCodec

    protected abstract Codec getCodec()

Returns the codec to run tests against

#### getCreatedVersionMajor

    protected int getCreatedVersionMajor()

Returns the major version that this codec is compatible with.

#### applyCreatedVersionMajor

    protected final <D extends Directory> D applyCreatedVersionMajor(D d)
                                                              throws IOException

Set the created version of the given `Directory` and return it.

Throws:
  `IOException`

#### setUp

    public void setUp()
               throws Exception

Description copied from class: `LuceneTestCase`
For subclasses to override. Overrides must call `super.setUp()`.

Overrides:
  `setUp` in class `LuceneTestCase`
Throws:
  `Exception`

#### tearDown

    public void tearDown()
                  throws Exception

Description copied from class: `LuceneTestCase`
For subclasses to override. Overrides must call `super.tearDown()`.

Overrides:
  `tearDown` in class `LuceneTestCase`
Throws:
  `Exception`

#### excludedExtensionsFromByteCounts

    protected Collection<String> excludedExtensionsFromByteCounts()

Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content.

#### testMergeStability

    public void testMergeStability()
                            throws Exception

The purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.

Throws:
  `Exception`

#### mergeIsStable

    protected boolean mergeIsStable()

#### testRamBytesUsed

    @LuceneTestCase.Slow
    public void testRamBytesUsed()
                                               throws IOException

Test the accuracy of the ramBytesUsed estimations.

Throws:
  `IOException`

#### testMultiClose

    public void testMultiClose()
                        throws IOException

Calls close multiple times on closeable codec apis

Throws:
  `IOException`

#### testRandomExceptions

    public void testRandomExceptions()
                              throws Exception

Tests exception handling on write and openInput/createOutput

Throws:
  `Exception`

#### shouldTestMergeInstance

    protected boolean shouldTestMergeInstance()

Returns `false` if only the regular fields reader should be tested, and `true` if only the merge instance should be tested.

#### maybeWrapWithMergingReader

    protected final DirectoryReader maybeWrapWithMergingReader(DirectoryReader r)
                                                        throws IOException

Throws:
  `IOException`