public static void AssertSplit(AtomicReader originalIndex, double testRatio, double crossValidationRatio, params string[] fieldNames)
{
BaseDirectoryWrapper trainingIndex = NewDirectory();
BaseDirectoryWrapper testIndex = NewDirectory();
BaseDirectoryWrapper crossValidationIndex = NewDirectory();
try
{
DatasetSplitter datasetSplitter = new DatasetSplitter(testRatio, crossValidationRatio);
datasetSplitter.Split(originalIndex, trainingIndex, testIndex, crossValidationIndex, new MockAnalyzer(Random()), fieldNames);
NotNull(trainingIndex);
NotNull(testIndex);
NotNull(crossValidationIndex);
DirectoryReader trainingReader = DirectoryReader.Open(trainingIndex);
True((int)(originalIndex.MaxDoc * (1d - testRatio - crossValidationRatio)) == trainingReader.MaxDoc);
DirectoryReader testReader = DirectoryReader.Open(testIndex);
True((int)(originalIndex.MaxDoc * testRatio) == testReader.MaxDoc);
DirectoryReader cvReader = DirectoryReader.Open(crossValidationIndex);
True((int)(originalIndex.MaxDoc * crossValidationRatio) == cvReader.MaxDoc);
trainingReader.Dispose();
testReader.Dispose();
cvReader.Dispose();
CloseQuietly(trainingReader);
CloseQuietly(testReader);
CloseQuietly(cvReader);
}
finally
{
trainingIndex.Dispose();
testIndex.Dispose();
crossValidationIndex.Dispose();
}
}