/*
* File: DefaultConfusionMatrixTest.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Foundry Learning Core
*
* Copyright February 04, 2011, Sandia Corporation.
* Under the terms of Contract DE-AC04-94AL85000, there is a non-exclusive
* license for use of this work by or on behalf of the U.S. Government. Export
* of this program may require a license from the United States Government.
*/
package gov.sandia.cognition.learning.performance.categorization;
import gov.sandia.cognition.learning.data.DefaultTargetEstimatePair;
import java.util.LinkedList;
import java.util.Random;
import gov.sandia.cognition.learning.data.TargetEstimatePair;
import gov.sandia.cognition.util.Pair;
import java.util.Collection;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Unit tests for class DefaultConfusionMatrix.
*
* @author Justin Basilico
* @since 3.1
*/
public class DefaultConfusionMatrixTest
{
/** Random number generator. */
protected Random random = new Random(211);
/**
* Creates a new test.
*/
public DefaultConfusionMatrixTest()
{
}
protected DefaultConfusionMatrix<String> createEmptyInstance()
{
return new DefaultConfusionMatrix<String>();
}
protected DefaultConfusionMatrix<String> createPopulatedInstance()
{
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
instance.add("a", "a", random.nextDouble() * 10.0);
instance.add("b", "b", random.nextDouble() * 10.0);
instance.add("b", "a", random.nextDouble() * 10.0);
instance.add("a", "b", random.nextDouble() * 10.0);
return instance;
}
protected DefaultConfusionMatrix<String> createExampleInstance()
{
// Based on the example here: http://www.colorado.edu/geography/gcraft/notes/manerror/html/kappa.html
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
instance.add("a", "a", 2);
instance.add("a", "c", 2);
instance.add("b", "b", 1);
instance.add("c", "a", 1);
instance.add("c", "c", 1);
instance.add("d", "d", 2);
instance.add("d", "e", 1);
instance.add("e", "e", 6);
return instance;
}
/**
* Test of constructors of class DefaultConfusionMatrix.
*/
@Test
public void testConstructors()
{
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
assertEquals(0.0, instance.getTotalCount(), 0.0);
assertTrue(instance.getCategories().isEmpty());
DefaultConfusionMatrix<String> other = new DefaultConfusionMatrix<String>();
other.add("a", "a");
other.add("b", "a");
instance = new DefaultConfusionMatrix<String>(other);
assertEquals(other.getTotalCount(), instance.getTotalCount(), 0.0);
other.add("c", "c");
assertTrue(other.getCategories().contains("c"));
assertFalse(instance.getCategories().contains("c"));
}
/**
* Test of clone method, of class DefaultConfusionMatrix.
*/
@Test
public void testClone()
{
DefaultConfusionMatrix<String> instance = this.createEmptyInstance();
DefaultConfusionMatrix<String> clone = instance.clone();
assertNotSame(instance, clone);
assertNotSame(clone, instance.clone());
instance.add("a", "a");
assertEquals(1.0, instance.getTotalCount(), 0.0);
assertEquals(0.0, clone.getTotalCount(), 0.0);
clone = instance.clone();
assertNotSame(instance, clone);
assertEquals(1.0, instance.getTotalCount(), 0.0);
assertEquals(1.0, clone.getTotalCount(), 0.0);
instance.add("a", "b");
assertEquals(2.0, instance.getTotalCount(), 0.0);
assertEquals(1.0, clone.getTotalCount(), 0.0);
}
/**
* Test of add method, of class DefaultConfusionMatrix.
*/
@Test
public void testAdd()
{
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
assertEquals(0, instance.getTotalCount(), 0.0);
assertEquals(0, instance.getCount("a", "a"), 0.0);
assertEquals(0, instance.getCount("a", "b"), 0.0);
assertEquals(0, instance.getCount("b", "a"), 0.0);
assertEquals(0, instance.getCount("b", "b"), 0.0);
instance.add("a", "b");
assertEquals(1, instance.getTotalCount(), 0.0);
assertEquals(0, instance.getCount("a", "a"), 0.0);
assertEquals(1, instance.getCount("a", "b"), 0.0);
assertEquals(0, instance.getCount("b", "a"), 0.0);
assertEquals(0, instance.getCount("b", "b"), 0.0);
instance.add("b", "b");
assertEquals(2, instance.getTotalCount(), 0.0);
assertEquals(0, instance.getCount("a", "a"), 0.0);
assertEquals(1, instance.getCount("a", "b"), 0.0);
assertEquals(0, instance.getCount("b", "a"), 0.0);
assertEquals(1, instance.getCount("b", "b"), 0.0);
instance.add("b", "a", 3);
assertEquals(5, instance.getTotalCount(), 0.0);
assertEquals(0, instance.getCount("a", "a"), 0.0);
assertEquals(1, instance.getCount("a", "b"), 0.0);
assertEquals(3, instance.getCount("b", "a"), 0.0);
assertEquals(1, instance.getCount("b", "b"), 0.0);
instance.add("b", "b", 4);
assertEquals(9, instance.getTotalCount(), 0.0);
assertEquals(0, instance.getCount("a", "a"), 0.0);
assertEquals(1, instance.getCount("a", "b"), 0.0);
assertEquals(3, instance.getCount("b", "a"), 0.0);
assertEquals(5, instance.getCount("b", "b"), 0.0);
instance.clear();
assertEquals(0.0, instance.getTotalCount(), 0.0);
assertEquals(0.0, instance.getCount("a", "b"), 0.0);
assertEquals(0.0, instance.getCount("c", "c"), 0.0);
instance.add("a", "b", 1.0);
assertEquals(1.0, instance.getTotalCount(), 0.0);
assertEquals(1.0, instance.getCount("a", "b"), 0.0);
assertEquals(0.0, instance.getCount("c", "c"), 0.0);
instance.add("c", "c", 3.4);
assertEquals(4.4, instance.getTotalCount(), 0.0);
assertEquals(1.0, instance.getCount("a", "b"), 0.0);
assertEquals(3.4, instance.getCount("c", "c"), 0.0);
instance.add("a", null, 2.6);
assertEquals(7.0, instance.getTotalCount(), 0.0);
assertEquals(1.0, instance.getCount("a", "b"), 0.0);
assertEquals(3.4, instance.getCount("c", "c"), 0.0);
assertEquals(2.6, instance.getCount("a", null), 0.0);
instance.add(null, "a", 0.2);
assertEquals(7.2, instance.getTotalCount(), 0.0);
assertEquals(1.0, instance.getCount("a", "b"), 0.0);
assertEquals(3.4, instance.getCount("c", "c"), 0.0);
assertEquals(2.6, instance.getCount("a", null), 0.0);
assertEquals(0.2, instance.getCount(null, "a"), 0.0);
instance.add(null, null, 0.2);
assertEquals(7.4, instance.getTotalCount(), 0.0);
assertEquals(1.0, instance.getCount("a", "b"), 0.0);
assertEquals(3.4, instance.getCount("c", "c"), 0.0);
assertEquals(2.6, instance.getCount("a", null), 0.0);
assertEquals(0.2, instance.getCount(null, "a"), 0.0);
assertEquals(0.2, instance.getCount(null, null), 0.0);
}
/**
* Test of getCount method, of class DefaultConfusionMatrix.
*/
@Test
public void testGetCount()
{
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
assertEquals(0.0, instance.getCount("a", "a"), 0.0);
assertEquals(0.0, instance.getCount("a", "b"), 0.0);
assertEquals(0.0, instance.getCount("b", "a"), 0.0);
assertEquals(0.0, instance.getCount("b", "b"), 0.0);
assertEquals(0.0, instance.getCount("a", "c"), 0.0);
assertEquals(0.0, instance.getCount("b", "c"), 0.0);
assertEquals(0.0, instance.getCount("c", "a"), 0.0);
assertEquals(0.0, instance.getCount("c", "a"), 0.0);
assertEquals(0.0, instance.getCount("c", "c"), 0.0);
assertEquals(0.0, instance.getCount("a", null), 0.0);
assertEquals(0.0, instance.getCount(null, "a"), 0.0);
assertEquals(0.0, instance.getCount(null, null), 0.0);
instance.add("a", "a");
assertEquals(1.0, instance.getCount("a", "a"), 0.0);
assertEquals(0.0, instance.getCount("a", "b"), 0.0);
assertEquals(0.0, instance.getCount("b", "a"), 0.0);
assertEquals(0.0, instance.getCount("b", "b"), 0.0);
assertEquals(0.0, instance.getCount("a", "c"), 0.0);
assertEquals(0.0, instance.getCount("b", "c"), 0.0);
assertEquals(0.0, instance.getCount("c", "a"), 0.0);
assertEquals(0.0, instance.getCount("c", "a"), 0.0);
assertEquals(0.0, instance.getCount("c", "c"), 0.0);
assertEquals(0.0, instance.getCount("a", null), 0.0);
assertEquals(0.0, instance.getCount(null, "a"), 0.0);
assertEquals(0.0, instance.getCount(null, null), 0.0);
instance.add("b", "a", 2.3);
assertEquals(1.0, instance.getCount("a", "a"), 0.0);
assertEquals(0.0, instance.getCount("a", "b"), 0.0);
assertEquals(2.3, instance.getCount("b", "a"), 0.0);
assertEquals(0.0, instance.getCount("b", "b"), 0.0);
assertEquals(0.0, instance.getCount("a", "c"), 0.0);
assertEquals(0.0, instance.getCount("b", "c"), 0.0);
assertEquals(0.0, instance.getCount("c", "a"), 0.0);
assertEquals(0.0, instance.getCount("c", "a"), 0.0);
assertEquals(0.0, instance.getCount("c", "c"), 0.0);
assertEquals(0.0, instance.getCount("a", null), 0.0);
assertEquals(0.0, instance.getCount(null, "a"), 0.0);
assertEquals(0.0, instance.getCount(null, null), 0.0);
instance = this.createExampleInstance();
assertEquals(2, instance.getCount("a", "a"), 0.0);
assertEquals(0, instance.getCount("a", "b"), 0.0);
assertEquals(2, instance.getCount("a", "c"), 0.0);
assertEquals(0, instance.getCount("a", "d"), 0.0);
assertEquals(0, instance.getCount("a", "e"), 0.0);
assertEquals(0, instance.getCount("a", "f"), 0.0);
assertEquals(0, instance.getCount("b", "a"), 0.0);
assertEquals(1, instance.getCount("b", "b"), 0.0);
assertEquals(0, instance.getCount("b", "c"), 0.0);
assertEquals(0, instance.getCount("b", "d"), 0.0);
assertEquals(0, instance.getCount("b", "e"), 0.0);
assertEquals(0, instance.getCount("b", "f"), 0.0);
assertEquals(1, instance.getCount("c", "a"), 0.0);
assertEquals(0, instance.getCount("c", "b"), 0.0);
assertEquals(1, instance.getCount("c", "c"), 0.0);
assertEquals(0, instance.getCount("c", "d"), 0.0);
assertEquals(0, instance.getCount("c", "e"), 0.0);
assertEquals(0, instance.getCount("c", "f"), 0.0);
assertEquals(0, instance.getCount("d", "a"), 0.0);
assertEquals(0, instance.getCount("d", "b"), 0.0);
assertEquals(0, instance.getCount("d", "c"), 0.0);
assertEquals(2, instance.getCount("d", "d"), 0.0);
assertEquals(1, instance.getCount("d", "e"), 0.0);
assertEquals(0, instance.getCount("d", "f"), 0.0);
assertEquals(0, instance.getCount("e", "a"), 0.0);
assertEquals(0, instance.getCount("e", "b"), 0.0);
assertEquals(0, instance.getCount("e", "c"), 0.0);
assertEquals(0, instance.getCount("e", "d"), 0.0);
assertEquals(6, instance.getCount("e", "e"), 0.0);
assertEquals(0, instance.getCount("e", "f"), 0.0);
assertEquals(0, instance.getCount("f", "a"), 0.0);
assertEquals(0, instance.getCount("f", "b"), 0.0);
assertEquals(0, instance.getCount("f", "c"), 0.0);
assertEquals(0, instance.getCount("f", "d"), 0.0);
assertEquals(0, instance.getCount("f", "e"), 0.0);
assertEquals(0, instance.getCount("f", "f"), 0.0);
}
/**
* Test of getActualCount method, of class DefaultConfusionMatrix.
*/
@Test
public void testGetActualCount()
{
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
assertEquals(0.0, instance.getActualCount("a"), 0.0);
assertEquals(0.0, instance.getActualCount("b"), 0.0);
assertEquals(0.0, instance.getActualCount("c"), 0.0);
assertEquals(0.0, instance.getActualCount(null), 0.0);
instance.add("b", "a");
assertEquals(0.0, instance.getActualCount("a"), 0.0);
assertEquals(1.0, instance.getActualCount("b"), 0.0);
assertEquals(0.0, instance.getActualCount("c"), 0.0);
assertEquals(0.0, instance.getActualCount(null), 0.0);
instance.add("a", "a", 2.3);
assertEquals(2.3, instance.getActualCount("a"), 0.0);
assertEquals(1.0, instance.getActualCount("b"), 0.0);
assertEquals(0.0, instance.getActualCount("c"), 0.0);
assertEquals(0.0, instance.getActualCount(null), 0.0);
instance.add("b", "a", 2.3);
assertEquals(2.3, instance.getActualCount("a"), 0.0);
assertEquals(3.3, instance.getActualCount("b"), 0.0);
assertEquals(0.0, instance.getActualCount("c"), 0.0);
assertEquals(0.0, instance.getActualCount(null), 0.0);
instance = this.createExampleInstance();
assertEquals(4, instance.getActualCount("a"), 0.0);
assertEquals(1, instance.getActualCount("b"), 0.0);
assertEquals(2, instance.getActualCount("c"), 0.0);
assertEquals(3, instance.getActualCount("d"), 0.0);
assertEquals(6, instance.getActualCount("e"), 0.0);
assertEquals(0, instance.getActualCount("f"), 0.0);
}
/**
* Test of clear method, of class DefaultConfusionMatrix.
*/
@Test
public void testClear()
{
DefaultConfusionMatrix<String> instance = new DefaultConfusionMatrix<String>();
assertEquals(0.0, instance.getTotalCount(), 0.0);
instance.clear();
assertEquals(0.0, instance.getTotalCount(), 0.0);
instance.add("b", "a");
instance.clear();
assertEquals(0.0, instance.getTotalCount(), 0.0);
instance = this.createExampleInstance();
instance.clear();
assertEquals(0.0, instance.getTotalCount(), 0.0);
}
/**
* Test of getCategories method, of class DefaultConfusionMatrix.
*/
@Test
public void testGetCategories()
{
DefaultConfusionMatrix<String> instance =
new DefaultConfusionMatrix<String>();
assertTrue(instance.getCategories().isEmpty());
instance = this.createExampleInstance();
assertEquals(5, instance.getCategories().size());
assertTrue(instance.getCategories().contains("a"));
assertTrue(instance.getCategories().contains("b"));
assertTrue(instance.getCategories().contains("c"));
assertTrue(instance.getCategories().contains("d"));
assertTrue(instance.getCategories().contains("e"));
instance.add("a", "f");
assertEquals(6, instance.getCategories().size());
assertTrue(instance.getCategories().contains("a"));
assertTrue(instance.getCategories().contains("b"));
assertTrue(instance.getCategories().contains("c"));
assertTrue(instance.getCategories().contains("d"));
assertTrue(instance.getCategories().contains("e"));
assertTrue(instance.getCategories().contains("f"));
instance.add("f", null);
assertEquals(7, instance.getCategories().size());
assertTrue(instance.getCategories().contains("a"));
assertTrue(instance.getCategories().contains("b"));
assertTrue(instance.getCategories().contains("c"));
assertTrue(instance.getCategories().contains("d"));
assertTrue(instance.getCategories().contains("e"));
assertTrue(instance.getCategories().contains("f"));
assertTrue(instance.getCategories().contains(null));
}
/**
* Test of getActualCategories method, of class DefaultConfusionMatrix.
*/
@Test
public void testGetActualCategories()
{
DefaultConfusionMatrix<String> instance =
new DefaultConfusionMatrix<String>();
assertTrue(instance.getActualCategories().isEmpty());
instance = this.createExampleInstance();
assertEquals(5, instance.getActualCategories().size());
assertTrue(instance.getActualCategories().contains("a"));
assertTrue(instance.getActualCategories().contains("b"));
assertTrue(instance.getActualCategories().contains("c"));
assertTrue(instance.getActualCategories().contains("d"));
assertTrue(instance.getActualCategories().contains("e"));
instance.add("a", "f");
assertEquals(5, instance.getActualCategories().size());
assertTrue(instance.getActualCategories().contains("a"));
assertTrue(instance.getActualCategories().contains("b"));
assertTrue(instance.getActualCategories().contains("c"));
assertTrue(instance.getActualCategories().contains("d"));
assertTrue(instance.getActualCategories().contains("e"));
instance.add(null, "f");
assertEquals(6, instance.getActualCategories().size());
assertTrue(instance.getActualCategories().contains("a"));
assertTrue(instance.getActualCategories().contains("b"));
assertTrue(instance.getActualCategories().contains("c"));
assertTrue(instance.getActualCategories().contains("d"));
assertTrue(instance.getActualCategories().contains("e"));
assertTrue(instance.getActualCategories().contains(null));
}
/**
* Test of getPredictedCategories method, of class DefaultConfusionMatrix.
*/
@Test
public void testGetPredictedCategories()
{
DefaultConfusionMatrix<String> instance =
new DefaultConfusionMatrix<String>();
assertTrue(instance.getPredictedCategories().isEmpty());
instance = this.createExampleInstance();
assertEquals(5, instance.getPredictedCategories().size());
assertTrue(instance.getPredictedCategories().contains("a"));
assertTrue(instance.getPredictedCategories().contains("b"));
assertTrue(instance.getPredictedCategories().contains("c"));
assertTrue(instance.getPredictedCategories().contains("d"));
assertTrue(instance.getPredictedCategories().contains("e"));
instance.add("f", "a");
assertEquals(5, instance.getPredictedCategories().size());
assertTrue(instance.getPredictedCategories().contains("a"));
assertTrue(instance.getPredictedCategories().contains("b"));
assertTrue(instance.getPredictedCategories().contains("c"));
assertTrue(instance.getPredictedCategories().contains("d"));
assertTrue(instance.getPredictedCategories().contains("e"));
instance.add("f", null);
assertEquals(6, instance.getPredictedCategories().size());
assertTrue(instance.getPredictedCategories().contains("a"));
assertTrue(instance.getPredictedCategories().contains("b"));
assertTrue(instance.getPredictedCategories().contains("c"));
assertTrue(instance.getPredictedCategories().contains("d"));
assertTrue(instance.getPredictedCategories().contains("e"));
assertTrue(instance.getPredictedCategories().contains(null));
instance = new DefaultConfusionMatrix<String>();
assertTrue(instance.getPredictedCategories("a").isEmpty());
assertTrue(instance.getPredictedCategories("b").isEmpty());
assertTrue(instance.getPredictedCategories(null).isEmpty());
instance.add("a", "b");
assertEquals(1, instance.getPredictedCategories("a").size());
assertTrue(instance.getPredictedCategories("a").contains("b"));
assertEquals(0, instance.getPredictedCategories("b").size());
assertEquals(0, instance.getPredictedCategories(null).size());
instance.add("a", "a");
assertEquals(2, instance.getPredictedCategories("a").size());
assertTrue(instance.getPredictedCategories("a").contains("a"));
assertTrue(instance.getPredictedCategories("a").contains("b"));
assertEquals(0, instance.getPredictedCategories("b").size());
assertEquals(0, instance.getPredictedCategories(null).size());
instance.add("b", "b");
assertEquals(2, instance.getPredictedCategories("a").size());
assertTrue(instance.getPredictedCategories("a").contains("a"));
assertTrue(instance.getPredictedCategories("a").contains("b"));
assertEquals(1, instance.getPredictedCategories("b").size());
assertTrue(instance.getPredictedCategories("b").contains("b"));
assertEquals(0, instance.getPredictedCategories(null).size());
instance.add("b", null);
assertEquals(2, instance.getPredictedCategories("a").size());
assertTrue(instance.getPredictedCategories("a").contains("a"));
assertTrue(instance.getPredictedCategories("a").contains("b"));
assertEquals(2, instance.getPredictedCategories("b").size());
assertTrue(instance.getPredictedCategories("b").contains("b"));
assertTrue(instance.getPredictedCategories("b").contains(null));
assertEquals(0, instance.getPredictedCategories(null).size());
instance.add(null, "a");
assertEquals(2, instance.getPredictedCategories("a").size());
assertTrue(instance.getPredictedCategories("a").contains("a"));
assertTrue(instance.getPredictedCategories("a").contains("b"));
assertEquals(2, instance.getPredictedCategories("b").size());
assertTrue(instance.getPredictedCategories("b").contains("b"));
assertTrue(instance.getPredictedCategories("b").contains(null));
assertEquals(1, instance.getPredictedCategories(null).size());
assertTrue(instance.getPredictedCategories(null).contains("a"));
instance.add(null, null);
assertEquals(2, instance.getPredictedCategories("a").size());
assertTrue(instance.getPredictedCategories("a").contains("a"));
assertTrue(instance.getPredictedCategories("a").contains("b"));
assertEquals(2, instance.getPredictedCategories("b").size());
assertTrue(instance.getPredictedCategories("b").contains("b"));
assertTrue(instance.getPredictedCategories("b").contains(null));
assertEquals(2, instance.getPredictedCategories(null).size());
assertTrue(instance.getPredictedCategories(null).contains("a"));
assertTrue(instance.getPredictedCategories(null).contains(null));
}
/**
* Test of toString method, of class DefaultConfusionMatrix.
*/
@Test
public void testToString()
{
System.out.println("toString");
DefaultConfusionMatrix<String> instance = this.createEmptyInstance();
assertNotNull(instance.toString());
instance = this.createPopulatedInstance();
assertNotNull(instance.toString());
instance.add(null, null);
assertNotNull(instance.toString());
}
/**
* Test of createUnweighted method, of class DefaultConfusionMatrix.
*/
@Test
public void testCreateUnweighted()
{
Collection<TargetEstimatePair<Boolean, Boolean>> data = new LinkedList<TargetEstimatePair<Boolean, Boolean>>();
DefaultConfusionMatrix<Boolean> instance = DefaultConfusionMatrix.createUnweighted(data);
assertTrue(instance.isEmpty());
assertEquals(0.0, instance.getTotalCount(), 0.0);
assertEquals(0.0, instance.getCount(true, true), 0.0);
assertEquals(0.0, instance.getCount(false, false), 0.0);
assertEquals(0.0, instance.getCount(false, true), 0.0);
assertEquals(0.0, instance.getCount(true, false), 0.0);
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, true));
instance = DefaultConfusionMatrix.createUnweighted(data);
assertFalse(instance.isEmpty());
assertEquals(1.0, instance.getTotalCount(), 0.0);
assertEquals(0.0, instance.getCount(true, true), 0.0);
assertEquals(0.0, instance.getCount(false, false), 0.0);
assertEquals(1.0, instance.getCount(false, true), 0.0);
assertEquals(0.0, instance.getCount(true, false), 0.0);
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, false));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, false));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, false));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, false));
instance = DefaultConfusionMatrix.createUnweighted(data);
assertFalse(instance.isEmpty());
assertEquals(10.0, instance.getTotalCount(), 0.0);
assertEquals(4.0, instance.getCount(true, true), 0.0);
assertEquals(3.0, instance.getCount(false, false), 0.0);
assertEquals(2.0, instance.getCount(false, true), 0.0);
assertEquals(1.0, instance.getCount(true, false), 0.0);
}
/**
* Test of createFromActualPredictedPairs method, of class DefaultConfusionMatrix.
*/
@Test
public void testCreateFromActualPredictedPairs()
{
Collection<Pair<Boolean, Boolean>> data = new LinkedList<Pair<Boolean, Boolean>>();
DefaultConfusionMatrix<Boolean> instance = DefaultConfusionMatrix.createFromActualPredictedPairs(data);
assertTrue(instance.isEmpty());
assertEquals(0.0, instance.getTotalCount(), 0.0);
assertEquals(0.0, instance.getCount(true, true), 0.0);
assertEquals(0.0, instance.getCount(false, false), 0.0);
assertEquals(0.0, instance.getCount(false, true), 0.0);
assertEquals(0.0, instance.getCount(true, false), 0.0);
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, true));
instance = DefaultConfusionMatrix.createFromActualPredictedPairs(data);
assertFalse(instance.isEmpty());
assertEquals(1.0, instance.getTotalCount(), 0.0);
assertEquals(0.0, instance.getCount(true, true), 0.0);
assertEquals(0.0, instance.getCount(false, false), 0.0);
assertEquals(1.0, instance.getCount(false, true), 0.0);
assertEquals(0.0, instance.getCount(true, false), 0.0);
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, true));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, false));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, false));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(false, false));
data.add(new DefaultTargetEstimatePair<Boolean, Boolean>(true, false));
instance = DefaultConfusionMatrix.createFromActualPredictedPairs(data);
assertFalse(instance.isEmpty());
assertEquals(10.0, instance.getTotalCount(), 0.0);
assertEquals(4.0, instance.getCount(true, true), 0.0);
assertEquals(3.0, instance.getCount(false, false), 0.0);
assertEquals(2.0, instance.getCount(false, true), 0.0);
assertEquals(1.0, instance.getCount(true, false), 0.0);
}
}