Package org.apache.lucene.tests.index
Class BaseKnnVectorsFormatTestCase
java.lang.Object
org.junit.Assert
org.apache.lucene.tests.util.LuceneTestCase
org.apache.lucene.tests.index.BaseKnnVectorsFormatTestCase
Base class aiming at testing
vectors formats. To test a new format, all
you need is to register a new Codec which uses it and extend this class and override
getCodec().- WARNING: This API is experimental and might change in incompatible ways in the next release.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.lucene.tests.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.BadApple, LuceneTestCase.Monster, LuceneTestCase.Nightly, LuceneTestCase.SuppressCodecs, LuceneTestCase.SuppressFileSystems, LuceneTestCase.SuppressFsync, LuceneTestCase.SuppressReproduceLine, LuceneTestCase.SuppressSysoutChecks, LuceneTestCase.SuppressTempFileChecks, LuceneTestCase.ThrowingConsumer<T>, LuceneTestCase.ThrowingRunnable, LuceneTestCase.Weekly -
Field Summary
Fields inherited from class org.apache.lucene.tests.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_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_THROTTLING, TEST_WEEKLY, VERBOSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddRandomFields(Document doc) Add random fields to the provided document.protected final <D extends Directory>
DSet the created version of the givenDirectoryand return it.protected Collection<String> Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content.protected abstract CodecgetCodec()Returns the codec to run tests againstprotected intReturns the major version that this codec is compatible with.voidinit()protected final DirectoryReaderprotected booleanprotected float[]randomNormalizedVector(int dim) protected VectorSimilarityFunctionprotected float[]randomVector(int dim) protected VectorEncodingThis method is overrideable since old codec versions only supportVectorEncoding.FLOAT32.voidsetUp()For subclasses to override.protected booleanReturnsfalseif only the regular fields reader should be tested, andtrueif only the merge instance should be tested.voidtearDown()For subclasses to override.voidvoidvoidvoidvoidvoidThis test is a best effort at verifying that checkIntegrity doesn't miss any files.voidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidvoidThe purpose of this test is to make sure that bulk merge doesn't accumulate useless data over runs.voidCalls close multiple times on closeable codec apisvoidIndex random vectors, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.voidIndex random vectors as bytes, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.voidTests exception handling on write and openInput/createOutputvoidIndex random vectors, sometimes skipping documents, sometimes updating a document, sometimes merging, sometimes sorting the index, using an HNSW similarity function so as to also produce a graph, and verify that the expected values can be read back consistently.voidTests whetherKnnVectorsReader.search(java.lang.String, float[], org.apache.lucene.search.KnnCollector, org.apache.lucene.util.Bits)implementations obey the limit on the number of visited vectors.voidvoidvoidvoidvoidvoidMethods inherited from class org.apache.lucene.tests.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, getDataInputStream, getDataPath, getJvmForkArguments, 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, newSnapshotIndexWriterConfig, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setUpExecutorService, shutdownExecutorService, slowFileExists, usually, usually, wrapReaderMethods 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
-
Constructor Details
-
BaseKnnVectorsFormatTestCase
public BaseKnnVectorsFormatTestCase()
-
-
Method Details
-
init
public void init() -
addRandomFields
Add random fields to the provided document. -
testFieldConstructor
public void testFieldConstructor() -
testFieldConstructorExceptions
public void testFieldConstructorExceptions() -
testFieldSetValue
public void testFieldSetValue() -
testIllegalDimChangeTwoDocs
- Throws:
Exception
-
testIllegalSimilarityFunctionChange
- Throws:
Exception
-
testIllegalDimChangeTwoWriters
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeTwoWriters
- Throws:
Exception
-
testAddIndexesDirectory0
- Throws:
Exception
-
testAddIndexesDirectory1
- Throws:
Exception
-
testAddIndexesDirectory01
- Throws:
Exception
-
testIllegalDimChangeViaAddIndexesDirectory
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeViaAddIndexesDirectory
- Throws:
Exception
-
testIllegalDimChangeViaAddIndexesCodecReader
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeViaAddIndexesCodecReader
- Throws:
Exception
-
testIllegalDimChangeViaAddIndexesSlowCodecReader
- Throws:
Exception
-
testIllegalSimilarityFunctionChangeViaAddIndexesSlowCodecReader
- Throws:
Exception
-
testIllegalMultipleValues
- Throws:
Exception
-
testIllegalDimensionTooLarge
- Throws:
Exception
-
testIllegalEmptyVector
- Throws:
Exception
-
testDifferentCodecs1
- Throws:
Exception
-
testDifferentCodecs2
- Throws:
Exception
-
testInvalidKnnVectorFieldUsage
public void testInvalidKnnVectorFieldUsage() -
testDeleteAllVectorDocs
- Throws:
Exception
-
testKnnVectorFieldMissingFromOneSegment
- Throws:
Exception
-
testSparseVectors
- Throws:
Exception
-
randomSimilarity
-
randomVectorEncoding
This method is overrideable since old codec versions only supportVectorEncoding.FLOAT32. -
testIndexedValueNotAliased
- Throws:
Exception
-
testSortedIndex
- Throws:
Exception
-
testSortedIndexBytes
- Throws:
Exception
-
testIndexMultipleKnnVectorFields
- Throws:
Exception
-
testRandom
Index random vectors, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.- Throws:
Exception
-
testRandomBytes
Index random vectors as bytes, sometimes skipping documents, sometimes deleting a document, sometimes merging, sometimes sorting the index, and verify that the expected values can be read back consistently.- Throws:
Exception
-
testSearchWithVisitedLimit
Tests whetherKnnVectorsReader.search(java.lang.String, float[], org.apache.lucene.search.KnnCollector, org.apache.lucene.util.Bits)implementations obey the limit on the number of visited vectors. This test is a best-effort attempt to capture the right behavior, and isn't meant to define a strict requirement on behavior.- Throws:
Exception
-
testRandomWithUpdatesAndGraph
Index random vectors, sometimes skipping documents, sometimes updating a document, sometimes merging, sometimes sorting the index, using an HNSW similarity function so as to also produce a graph, and verify that the expected values can be read back consistently.- Throws:
Exception
-
randomVector
protected float[] randomVector(int dim) -
randomNormalizedVector
protected float[] randomNormalizedVector(int dim) -
testCheckIndexIncludesVectors
- Throws:
Exception
-
testSimilarityFunctionIdentifiers
public void testSimilarityFunctionIdentifiers() -
testVectorEncodingOrdinals
public void testVectorEncodingOrdinals() -
testAdvance
- Throws:
Exception
-
testVectorValuesReportCorrectDocs
- Throws:
Exception
-
getCodec
Returns the codec to run tests against -
getCreatedVersionMajor
protected int getCreatedVersionMajor()Returns the major version that this codec is compatible with. -
applyCreatedVersionMajor
Set the created version of the givenDirectoryand return it.- Throws:
IOException
-
setUp
Description copied from class:LuceneTestCaseFor subclasses to override. Overrides must callsuper.setUp().- Overrides:
setUpin classLuceneTestCase- Throws:
Exception
-
tearDown
Description copied from class:LuceneTestCaseFor subclasses to override. Overrides must callsuper.tearDown().- Overrides:
tearDownin classLuceneTestCase- Throws:
Exception
-
excludedExtensionsFromByteCounts
Return the list of extensions that should be excluded from byte counts when comparing indices that store the same content. -
testMergeStability
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() -
testMultiClose
Calls close multiple times on closeable codec apis- Throws:
IOException
-
testRandomExceptions
Tests exception handling on write and openInput/createOutput- Throws:
Exception
-
shouldTestMergeInstance
protected boolean shouldTestMergeInstance()Returnsfalseif only the regular fields reader should be tested, andtrueif only the merge instance should be tested. -
maybeWrapWithMergingReader
- Throws:
IOException
-
testCheckIntegrityReadsAllBytes
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
-