From 276ccff751dc0f5cd0599dd5a6682553a0b58d7b Mon Sep 17 00:00:00 2001 From: Tommaso Teofili Date: Thu, 6 Apr 2017 19:13:50 +0200 Subject: [PATCH] LUCENE-6853 - re-enabled test classification measures for bpc --- .../BooleanPerceptronClassifierTest.java | 39 +++++++++++++++++-- 1 file changed, 36 insertions(+), 3 deletions(-) diff --git a/lucene/classification/src/test/org/apache/lucene/classification/BooleanPerceptronClassifierTest.java b/lucene/classification/src/test/org/apache/lucene/classification/BooleanPerceptronClassifierTest.java index ec059f75ac4..5ecf9c67465 100644 --- a/lucene/classification/src/test/org/apache/lucene/classification/BooleanPerceptronClassifierTest.java +++ b/lucene/classification/src/test/org/apache/lucene/classification/BooleanPerceptronClassifierTest.java @@ -19,8 +19,12 @@ package org.apache.lucene.classification; import org.apache.lucene.analysis.MockAnalyzer; import org.apache.lucene.classification.utils.ConfusionMatrixGenerator; import org.apache.lucene.index.LeafReader; +import org.apache.lucene.index.MultiFields; import org.apache.lucene.index.Term; +import org.apache.lucene.index.Terms; +import org.apache.lucene.index.TermsEnum; import org.apache.lucene.search.TermQuery; +import org.apache.lucene.util.BytesRef; import org.junit.Test; /** @@ -90,16 +94,45 @@ public class BooleanPerceptronClassifierTest extends ClassificationTestBase avgClassificationTime); - // accuracy check disabled until LUCENE-6853 is fixed + + double f1 = confusionMatrix.getF1Measure(); + assertTrue(f1 >= 0d); + assertTrue(f1 <= 1d); + double accuracy = confusionMatrix.getAccuracy(); - assertTrue(accuracy > 0d); + assertTrue(accuracy >= 0d); + assertTrue(accuracy <= 1d); + + double recall = confusionMatrix.getRecall(); + assertTrue(recall >= 0d); + assertTrue(recall <= 1d); + + double precision = confusionMatrix.getPrecision(); + assertTrue(precision >= 0d); + assertTrue(precision <= 1d); + + Terms terms = MultiFields.getTerms(leafReader, booleanFieldName); + TermsEnum iterator = terms.iterator(); + BytesRef term; + while ((term = iterator.next()) != null) { + String s = term.utf8ToString(); + recall = confusionMatrix.getRecall(s); + assertTrue(recall >= 0d); + assertTrue(recall <= 1d); + precision = confusionMatrix.getPrecision(s); + assertTrue(precision >= 0d); + assertTrue(precision <= 1d); + double f1Measure = confusionMatrix.getF1Measure(s); + assertTrue(f1Measure >= 0d); + assertTrue(f1Measure <= 1d); + } } finally { leafReader.close(); }