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
`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
`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, 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

#### 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`