protected void CheckOnlineClassification(IClassifier <T> classifier, String inputDoc, T expectedResult, Analyzer analyzer, String textFieldName, String classFieldName, Query query) { AtomicReader atomicReader = null; try { PopulateSampleIndex(analyzer); atomicReader = SlowCompositeReaderWrapper.Wrap(indexWriter.GetReader()); classifier.Train(atomicReader, textFieldName, classFieldName, analyzer, query); ClassificationResult <T> classificationResult = classifier.AssignClass(inputDoc); Assert.NotNull(classificationResult.AssignedClass); Assert.AreEqual(expectedResult, classificationResult.AssignedClass, "got an assigned class of " + classificationResult.AssignedClass); Assert.IsTrue(classificationResult.Score > 0, "got a not positive score " + classificationResult.Score); UpdateSampleIndex(analyzer); ClassificationResult <T> secondClassificationResult = classifier.AssignClass(inputDoc); Equals(classificationResult.AssignedClass, secondClassificationResult.AssignedClass); Equals(classificationResult.Score, secondClassificationResult.Score); } finally { if (atomicReader != null) { atomicReader.Dispose(); } } }