Class BaseNormsFormatTestCase

java.lang.Object
org.junit.Assert
org.apache.lucene.tests.util.LuceneTestCase
org.apache.lucene.tests.index.BaseNormsFormatTestCase

public abstract class BaseNormsFormatTestCase extends LuceneTestCase
Abstract class to do basic tests for a norms format. NOTE: This test focuses on the norms impl, nothing else. The [stretch] goal is for this test to be so thorough in testing a new NormsFormat that if this test passes, then all Lucene/Solr tests should also pass. Ie, if there is some bug in a given NormsFormat that this test fails to catch then this test needs to be improved!
  • Constructor Details

    • BaseNormsFormatTestCase

      public BaseNormsFormatTestCase()
  • Method Details

    • codecSupportsSparsity

      protected boolean codecSupportsSparsity()
      Whether the codec supports sparse values.
    • testByteRange

      public void testByteRange() throws Exception
      Throws:
      Exception
    • testSparseByteRange

      public void testSparseByteRange() throws Exception
      Throws:
      Exception
    • testShortRange

      public void testShortRange() throws Exception
      Throws:
      Exception
    • testSparseShortRange

      public void testSparseShortRange() throws Exception
      Throws:
      Exception
    • testLongRange

      public void testLongRange() throws Exception
      Throws:
      Exception
    • testSparseLongRange

      public void testSparseLongRange() throws Exception
      Throws:
      Exception
    • testFullLongRange

      public void testFullLongRange() throws Exception
      Throws:
      Exception
    • testSparseFullLongRange

      public void testSparseFullLongRange() throws Exception
      Throws:
      Exception
    • testFewValues

      public void testFewValues() throws Exception
      Throws:
      Exception
    • testFewSparseValues

      public void testFewSparseValues() throws Exception
      Throws:
      Exception
    • testFewLargeValues

      public void testFewLargeValues() throws Exception
      Throws:
      Exception
    • testFewSparseLargeValues

      public void testFewSparseLargeValues() throws Exception
      Throws:
      Exception
    • testAllZeros

      public void testAllZeros() throws Exception
      Throws:
      Exception
    • testSparseAllZeros

      public void testSparseAllZeros() throws Exception
      Throws:
      Exception
    • testMostZeros

      public void testMostZeros() throws Exception
      Throws:
      Exception
    • testOutliers

      public void testOutliers() throws Exception
      Throws:
      Exception
    • testSparseOutliers

      public void testSparseOutliers() throws Exception
      Throws:
      Exception
    • testOutliers2

      public void testOutliers2() throws Exception
      Throws:
      Exception
    • testSparseOutliers2

      public void testSparseOutliers2() throws Exception
      Throws:
      Exception
    • testNCommon

      public void testNCommon() throws Exception
      Throws:
      Exception
    • testSparseNCommon

      public void testSparseNCommon() throws Exception
      Throws:
      Exception
    • testNCommonBig

      @Nightly public void testNCommonBig() throws Exception
      a more thorough n-common that tests all low bpv
      Throws:
      Exception
    • testSparseNCommonBig

      @Nightly public void testSparseNCommonBig() throws Exception
      a more thorough n-common that tests all low bpv and sparse docs
      Throws:
      Exception
    • addRandomFields

      protected void addRandomFields(Document doc)
      Add random fields to the provided document.
    • 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
    • testUndeadNorms

      public void testUndeadNorms() throws Exception
      Throws:
      Exception
    • testThreads

      public void testThreads() throws Exception
      Throws:
      Exception
    • testIndependantIterators

      public void testIndependantIterators() throws IOException
      Throws:
      IOException
    • testIndependantSparseIterators

      public void testIndependantSparseIterators() throws IOException
      Throws:
      IOException
    • 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.
    • mergeIsStable

      protected boolean mergeIsStable()
    • 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