package quickml.supervised.tree.scorers;
import org.junit.Assert;
import org.junit.Test;
import quickml.supervised.tree.decisionTree.scorers.PenalizedInformationGainScorer;
import quickml.supervised.tree.decisionTree.valueCounters.ClassificationCounter;
import quickml.supervised.tree.reducers.AttributeStats;
import java.util.Arrays;
public class PenalizedInformationGainScorerTest {
@Test
public void sameClassificationTest() {
ClassificationCounter a = new ClassificationCounter();
a.addClassification("a", 4);
ClassificationCounter b = new ClassificationCounter();
b.addClassification("a", 4);
PenalizedInformationGainScorer scorer = new PenalizedInformationGainScorer(0, 0.0, new AttributeStats<>(Arrays.asList(a, b), a.add(b), "a"));
Assert.assertEquals(scorer.scoreSplit(a, b), 0.0, 1E-7);
}
@Test
public void diffClassificationTest() {
ClassificationCounter a = new ClassificationCounter();
a.addClassification("a", 4);
ClassificationCounter b = new ClassificationCounter();
b.addClassification("b", 4);
PenalizedInformationGainScorer scorer = new PenalizedInformationGainScorer(0, 0.0, new AttributeStats<>(Arrays.asList(a, b), a.add(b), "a"));
Assert.assertEquals(scorer.scoreSplit(a, b), 1.0, 1E-7);
}
}