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
    Modifier and Type | Method and Description
    --- | ---
    `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` | `testCheckIntegrityReadsAllBytes()` This test is a best effort at verifying that checkIntegrity doesn't miss any files.
    `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, callStackContains, callStackContains, callStackContainsAnyOf, 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.Nightly
          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`

    - #### testCheckIntegrityReadsAllBytes

          public void testCheckIntegrityReadsAllBytes()
                                               throws Exception

      This test is a best effort at verifying that checkIntegrity doesn't miss any files. It tests that the combination of opening a reader and calling checkIntegrity on it reads all bytes of all files.
      Throws:
        `Exception`

Copyright © 2000-2020 Apache Software Foundation. All Rights Reserved.