package quickml.supervised.tree.decisionTree.reducers;
import com.google.common.base.Optional;
import org.junit.Assert;
import org.junit.Test;
import quickml.data.instances.ClassifierInstance;
import quickml.supervised.tree.decisionTree.valueCounters.ClassificationCounter;
import quickml.supervised.tree.reducers.AttributeStats;
import java.util.List;
/**
* Created by alexanderhawk on 6/29/15.
*/
public class BinaryCatOldBranchReducerTest {
@Test
public void binCatReducerGetAttributeStatsTest() {
List<ClassifierInstance> instances = DTCatOldBranchReducerTest.<ClassifierInstance>getInstances();
DTBinaryCatBranchReducer<ClassifierInstance> reducer = new DTBinaryCatBranchReducer<>(instances, 0.0);
Optional<AttributeStats<ClassificationCounter>> attributeStatsOptional = reducer.getAttributeStats("t");
AttributeStats<ClassificationCounter> attributeStats = attributeStatsOptional.get();
Assert.assertEquals(attributeStats.getStatsOnEachValue().size(), 2);
ClassificationCounter first = attributeStats.getStatsOnEachValue().get(0);
//test correct ordering that first comes before second
Assert.assertEquals(first.getCount(1.0), 2.0, 1E-5);
Assert.assertEquals(first.getCount(0.0), 2.0, 1E-5);
ClassificationCounter second = attributeStats.getStatsOnEachValue().get(1);
Assert.assertEquals(second.getCount(1.0), 3.0, 1E-5);
Assert.assertEquals(second.getCount(0.0), 1.0, 1E-5);
}
}