package edu.cmu.minorthird.classify;
import java.util.Iterator;
import junit.framework.TestCase;
/**
* This class...
* @author ksteppe
*/
public abstract class InstanceTestBase extends TestCase
{
protected Instance instance;
protected static final Feature hello = new Feature("token eq hello");
protected static final Feature world = new Feature("token eq world");
public InstanceTestBase(String name)
{ super(name); }
public void testBinaryFeatures()
{
assertEquals(1d, instance.getWeight(hello), 0.01);
assertEquals(1d, instance.getWeight(world), 0.01);
Iterator<Feature> it = instance.binaryFeatureIterator();
assertEquals(new Feature("token eq croutons"), it.next());
assertEquals(hello, it.next());
}
public void testNumericFeatures()
{
assertEquals(1d, instance.getWeight(hello), 0.01);
assertEquals(10d, instance.getWeight(world), 0.01);
assertEquals(0.5, instance.getWeight(new Feature("token eq purple")), 0.01);
assertEquals(Double.MAX_VALUE, instance.getWeight(new Feature("token eq max")), 0.01);
assertEquals(new Double(Double.NaN), new Double(instance.getWeight(new Feature("token eq nan"))));
}
public void testMixedFeatures()
{
testBinaryFeatures();
testNumericFeatures();
Iterator<Feature> it = instance.featureIterator();
assertEquals(new Feature("token eq croutons"), it.next());
assertEquals(new Feature("token eq zzfencepost"), it.next());
assertEquals(new Feature("token eq hello"), it.next());
assertEquals(new Feature("token eq max"), it.next());
}
}