org.apache.lucene.search

## Class BaseExplanationTestCase

- java.lang.Object
- - org.junit.Assert
  - - org.apache.lucene.util.LuceneTestCase
    - - org.apache.lucene.search.BaseExplanationTestCase

-     public abstract class BaseExplanationTestCase
      extends LuceneTestCase

  Tests primitive queries (ie: that rewrite to themselves) to insure they match the expected set of docs, and that the score of each match is equal to the value of the scores explanation.

  The assumption is that if all of the "primitive" queries work well, then anything that rewrites to a primitive will work well also.

- - ### 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
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ALTFIELD`
    `protected static Analyzer` | `analyzer`
    `protected static Directory` | `directory`
    `protected static String[]` | `docFields`
    `static String` | `FIELD`
    `static String` | `KEY`
    `protected static IndexReader` | `reader`
    `protected static IndexSearcher` | `searcher`

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

  - ### Method Summary

    All Methods Static Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `static void` | `afterClassTestExplanations()`
    `static void` | `beforeClassTestExplanations()`
    `void` | `bqtest(Query q, int[] expDocNrs)` Tests a query using qtest after wrapping it with both optB and reqB
    `static Document` | `createDoc(int index)`
    `protected Query` | `matchTheseItems(int[] terms)` Convenience subclass of TermsQuery
    `Query` | `optB(Query q)` MACRO: Wraps a Query in a BooleanQuery so that it is optional, along with a second prohibited clause which will never match anything
    `void` | `qtest(Query q, int[] expDocNrs)` check the expDocNrs match and have scores that match the explanations.
    `Query` | `reqB(Query q)` MACRO: Wraps a Query in a BooleanQuery so that it is required, along with a second optional clause which will match everything
    `SpanQuery` | `sf(String s, int b)` MACRO for SpanFirst(SpanTermQuery)
    `SpanQuery` | `snear(SpanQuery s, SpanQuery e, int slop, boolean inOrder)` MACRO for SpanNearQuery containing two SpanQueries
    `SpanQuery` | `snear(SpanQuery s, SpanQuery m, SpanQuery e, int slop, boolean inOrder)` MACRO for SpanNearQuery containing three SpanQueries
    `SpanQuery` | `snear(String s, String e, int slop, boolean inOrder)` MACRO for SpanNearQuery containing two SpanTerm queries
    `SpanQuery` | `snear(String s, String m, String e, int slop, boolean inOrder)` MACRO for SpanNearQuery containing three SpanTerm queries
    `SpanQuery` | `snot(SpanQuery i, SpanQuery e)` MACRO for SpanNotQuery
    `SpanQuery` | `sor(SpanQuery s, SpanQuery e)` MACRO for SpanOrQuery containing two SpanQueries
    `SpanQuery` | `sor(SpanQuery s, SpanQuery m, SpanQuery e)` MACRO for SpanOrQuery containing two SpanQueries
    `SpanQuery` | `sor(String s, String e)` MACRO for SpanOrQuery containing two SpanTerm queries
    `SpanQuery` | `sor(String s, String m, String e)` MACRO for SpanOrQuery containing three SpanTerm queries
    `SpanQuery` | `st(String s)` MACRO for SpanTermQuery
    `static Term[]` | `ta(String[] s)` helper for generating MultiPhraseQueries

    - ### 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, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, 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, 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, assertThrows, assertThrows, assertTrue, assertTrue, fail, fail`

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

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

- - ### Field Detail

    - #### searcher

          protected static IndexSearcher searcher

    - #### reader

          protected static IndexReader reader

    - #### directory

          protected static Directory directory

    - #### analyzer

          protected static Analyzer analyzer

    - #### KEY

          public static final String KEY

      See Also:
        Constant Field Values

    - #### FIELD

          public static final String FIELD

      See Also:
        Constant Field Values

    - #### ALTFIELD

          public static final String ALTFIELD

      See Also:
        Constant Field Values

    - #### docFields

          protected static final String[] docFields

  - ### Constructor Detail

    - #### BaseExplanationTestCase

          public BaseExplanationTestCase()

  - ### Method Detail

    - #### afterClassTestExplanations

          public static void afterClassTestExplanations()
                                                 throws Exception

      Throws:
        `Exception`

    - #### beforeClassTestExplanations

          public static void beforeClassTestExplanations()
                                                  throws Exception

      Throws:
        `Exception`

    - #### createDoc

          public static Document createDoc(int index)

    - #### qtest

          public void qtest(Query q,
                            int[] expDocNrs)
                     throws Exception

      check the expDocNrs match and have scores that match the explanations. Query may be randomly wrapped in a BooleanQuery with a term that matches no documents.
      Throws:
        `Exception`

    - #### bqtest

          public void bqtest(Query q,
                             int[] expDocNrs)
                      throws Exception

      Tests a query using qtest after wrapping it with both optB and reqB
      Throws:
        `Exception`
      See Also:
        `qtest(org.apache.lucene.search.Query, int[])`, `reqB(org.apache.lucene.search.Query)`, `optB(org.apache.lucene.search.Query)`

    - #### matchTheseItems

          protected Query matchTheseItems(int[] terms)

      Convenience subclass of TermsQuery

    - #### ta

          public static Term[] ta(String[] s)

      helper for generating MultiPhraseQueries

    - #### st

          public SpanQuery st(String s)

      MACRO for SpanTermQuery

    - #### snot

          public SpanQuery snot(SpanQuery i,
                                SpanQuery e)

      MACRO for SpanNotQuery

    - #### sor

          public SpanQuery sor(String s,
                               String e)

      MACRO for SpanOrQuery containing two SpanTerm queries

    - #### sor

          public SpanQuery sor(SpanQuery s,
                               SpanQuery e)

      MACRO for SpanOrQuery containing two SpanQueries

    - #### sor

          public SpanQuery sor(String s,
                               String m,
                               String e)

      MACRO for SpanOrQuery containing three SpanTerm queries

    - #### sor

          public SpanQuery sor(SpanQuery s,
                               SpanQuery m,
                               SpanQuery e)

      MACRO for SpanOrQuery containing two SpanQueries

    - #### snear

          public SpanQuery snear(String s,
                                 String e,
                                 int slop,
                                 boolean inOrder)

      MACRO for SpanNearQuery containing two SpanTerm queries

    - #### snear

          public SpanQuery snear(SpanQuery s,
                                 SpanQuery e,
                                 int slop,
                                 boolean inOrder)

      MACRO for SpanNearQuery containing two SpanQueries

    - #### snear

          public SpanQuery snear(String s,
                                 String m,
                                 String e,
                                 int slop,
                                 boolean inOrder)

      MACRO for SpanNearQuery containing three SpanTerm queries

    - #### snear

          public SpanQuery snear(SpanQuery s,
                                 SpanQuery m,
                                 SpanQuery e,
                                 int slop,
                                 boolean inOrder)

      MACRO for SpanNearQuery containing three SpanQueries

    - #### sf

          public SpanQuery sf(String s,
                              int b)

      MACRO for SpanFirst(SpanTermQuery)

    - #### optB

          public Query optB(Query q)
                     throws Exception

      MACRO: Wraps a Query in a BooleanQuery so that it is optional, along with a second prohibited clause which will never match anything
      Throws:
        `Exception`

    - #### reqB

          public Query reqB(Query q)
                     throws Exception

      MACRO: Wraps a Query in a BooleanQuery so that it is required, along with a second optional clause which will match everything
      Throws:
        `Exception`

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