org.apache.lucene.index

## Class BaseMergePolicyTestCase

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

-     public abstract class BaseMergePolicyTestCase
      extends LuceneTestCase

  Base test case for `MergePolicy`.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `BaseMergePolicyTestCase.IOStats` Statistics about bytes written to storage.
    `static class` | `BaseMergePolicyTestCase.MockMergeContext` Simple mock merge context for tests

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected static SegmentInfos` | `applyDeletes(SegmentInfos infos, int numDeletes)` Apply `numDeletes` uniformly across all segments of `infos`.
    `protected static SegmentInfos` | `applyMerge(SegmentInfos infos, MergePolicy.OneMerge merge, String mergedSegmentName, BaseMergePolicyTestCase.IOStats stats)` Apply a merge to a `SegmentInfos` instance, accumulating the number of written bytes into `stats`.
    `protected abstract void` | `assertMerge(MergePolicy policy, MergePolicy.MergeSpecification merge)` Assert that the given merge matches expectations of the merge policy.
    `protected abstract void` | `assertSegmentInfos(MergePolicy policy, SegmentInfos infos)` Assert that the given segment infos match expectations of the merge policy, assuming segments that have only been either flushed or merged with this merge policy.
    `protected void` | `doTestSimulateAppendOnly(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush)` Simulate an append-only use-case, ie.
    `protected void` | `doTestSimulateUpdates(MergePolicy mergePolicy, int totalDocs, int maxDocsPerFlush)` Simulate an update use-case where documents are uniformly updated across segments.
    `protected static SegmentCommitInfo` | `makeSegmentCommitInfo(String name, int maxDoc, int numDeletedDocs, double sizeMB, String source)` Make a new `SegmentCommitInfo` with the given `maxDoc`, `numDeletedDocs` and `sizeInBytes`, which are usually the numbers that merge policies care about.
    `protected abstract MergePolicy` | `mergePolicy()` Create a new `MergePolicy` instance.
    `void` | `testFindForcedDeletesMerges()`
    `void` | `testForceMergeNotNeeded()`
    `void` | `testSimulateAppendOnly()` Simulate an append-only use-case, ie.
    `void` | `testSimulateUpdates()` Simulate an update use-case where documents are uniformly updated across segments.

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

      `addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertFieldsEquals, assertFieldStatisticsEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, 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, 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`

- - ### Constructor Detail

    - #### BaseMergePolicyTestCase

          public BaseMergePolicyTestCase()

  - ### Method Detail

    - #### mergePolicy

          protected abstract MergePolicy mergePolicy()

      Create a new `MergePolicy` instance.

    - #### assertSegmentInfos

          protected abstract void assertSegmentInfos(MergePolicy policy,
                                                     SegmentInfos infos)
                                              throws IOException

      Assert that the given segment infos match expectations of the merge policy, assuming segments that have only been either flushed or merged with this merge policy.
      Throws:
        `IOException`

    - #### assertMerge

          protected abstract void assertMerge(MergePolicy policy,
                                              MergePolicy.MergeSpecification merge)
                                       throws IOException

      Assert that the given merge matches expectations of the merge policy.
      Throws:
        `IOException`

    - #### testForceMergeNotNeeded

          public void testForceMergeNotNeeded()
                                       throws IOException

      Throws:
        `IOException`

    - #### testFindForcedDeletesMerges

          public void testFindForcedDeletesMerges()
                                           throws IOException

      Throws:
        `IOException`

    - #### makeSegmentCommitInfo

          protected static SegmentCommitInfo makeSegmentCommitInfo(String name,
                                                                   int maxDoc,
                                                                   int numDeletedDocs,
                                                                   double sizeMB,
                                                                   String source)

      Make a new `SegmentCommitInfo` with the given `maxDoc`, `numDeletedDocs` and `sizeInBytes`, which are usually the numbers that merge policies care about.

    - #### applyMerge

          protected static SegmentInfos applyMerge(SegmentInfos infos,
                                                   MergePolicy.OneMerge merge,
                                                   String mergedSegmentName,
                                                   BaseMergePolicyTestCase.IOStats stats)
                                            throws IOException

      Apply a merge to a `SegmentInfos` instance, accumulating the number of written bytes into `stats`.
      Throws:
        `IOException`

    - #### applyDeletes

          protected static SegmentInfos applyDeletes(SegmentInfos infos,
                                                     int numDeletes)

      Apply `numDeletes` uniformly across all segments of `infos`.

    - #### testSimulateAppendOnly

          public void testSimulateAppendOnly()
                                      throws IOException

      Simulate an append-only use-case, ie. there are no deletes.
      Throws:
        `IOException`

    - #### doTestSimulateAppendOnly

          protected void doTestSimulateAppendOnly(MergePolicy mergePolicy,
                                                  int totalDocs,
                                                  int maxDocsPerFlush)
                                           throws IOException

      Simulate an append-only use-case, ie. there are no deletes. `totalDocs` exist in the index in the end, and flushes contribute at most `maxDocsPerFlush` documents.
      Throws:
        `IOException`

    - #### testSimulateUpdates

          public void testSimulateUpdates()
                                   throws IOException

      Simulate an update use-case where documents are uniformly updated across segments.
      Throws:
        `IOException`

    - #### doTestSimulateUpdates

          protected void doTestSimulateUpdates(MergePolicy mergePolicy,
                                               int totalDocs,
                                               int maxDocsPerFlush)
                                        throws IOException

      Simulate an update use-case where documents are uniformly updated across segments. `totalDocs` exist in the index in the end, and flushes contribute at most `maxDocsPerFlush` documents.
      Throws:
        `IOException`

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