/*
* File: CompositeEvaluatorListTest.java
* Authors: Justin Basilico
* Company: Sandia National Laboratories
* Project: Cognitive Foundry
*
* Copyright September 30, 2008, 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.
* See CopyrightHistory.txt for complete details.
*
*/
package gov.sandia.cognition.evaluator;
import gov.sandia.cognition.evaluator.CompositeEvaluatorPairTest.Adder;
import gov.sandia.cognition.evaluator.CompositeEvaluatorPairTest.Multiplier;
import java.util.ArrayList;
import junit.framework.TestCase;
/**
* Tests of CompositeEvaluatorList
* @author Justin Basilico
* @since 2.1
*/
public class CompositeEvaluatorListTest
extends TestCase
{
/**
* Creates a new test.
*
* @param testName The test name.
*/
public CompositeEvaluatorListTest(
String testName)
{
super(testName);
}
/**
* Test of constructors of CompositeEvaluatorList.
*/
public void testConstructors()
{
CompositeEvaluatorList<Number, Number> instance =
new CompositeEvaluatorList<Number, Number>();
assertTrue(instance.getEvaluators().isEmpty());
Evaluator<?, ?>[] evaluatorsArray =
{
new Adder(),
new Multiplier(),
new Adder()
};
instance =
new CompositeEvaluatorList<Number, Number>(evaluatorsArray);
assertFalse(instance.getEvaluators().isEmpty());
assertEquals(evaluatorsArray.length, instance.getEvaluators().size());
for (int i = 0; i < evaluatorsArray.length; i++)
{
assertSame(evaluatorsArray[i], instance.getEvaluators().get(i));
}
ArrayList<Evaluator<?,?>> evaluatorsList = new ArrayList<Evaluator<?,?>>();
for (int i = 0; i < evaluatorsArray.length; i++)
{
evaluatorsList.add(evaluatorsArray[i]);
}
instance = new CompositeEvaluatorList<Number, Number>(evaluatorsList);
assertNotSame(evaluatorsList, instance.getEvaluators());
assertFalse(instance.getEvaluators().isEmpty());
assertEquals(evaluatorsArray.length, instance.getEvaluators().size());
for (int i = 0; i < evaluatorsArray.length; i++)
{
assertSame(evaluatorsArray[i], instance.getEvaluators().get(i));
}
}
public void testClone()
{
System.out.println( "clone" );
Evaluator<?, ?>[] evaluatorsArray =
{
new Adder(),
new Multiplier(),
new Adder()
};
CompositeEvaluatorList<Number, Number> instance =
new CompositeEvaluatorList<Number, Number>(evaluatorsArray);
CompositeEvaluatorList<Number, Number> clone = instance.clone();
assertNotNull( clone );
assertNotSame( instance, clone );
}
/**
* Test of evaluate method, of class CompositeEvaluatorList.
*/
public void testEvaluate()
{
Adder adder = new Adder(4.0);
Multiplier multiplier = new Multiplier(7.0);
CompositeEvaluatorList<Number, Number> instance =
new CompositeEvaluatorList<Number, Number>(adder, multiplier);
double input = 10;
assertEquals(((input + 4.0) * 7.0), instance.evaluate(input));
instance.setEvaluators(adder, multiplier, adder);
assertEquals(((input + 4.0) * 7.0) + 4.0, instance.evaluate(input));
instance.setEvaluators(multiplier, adder, adder);
assertEquals(((input * 7.0) + 4.0) + 4.0, instance.evaluate(input));
instance.setEvaluators(multiplier, multiplier, multiplier);
assertEquals(((input * 7.0) * 7.0) * 7.0, instance.evaluate(input));
instance.setEvaluators(adder, adder, adder);
assertEquals(((input + 4.0) + 4.0) + 4.0, instance.evaluate(input));
}
/**
* Test of getEvaluators method, of class CompositeEvaluatorList.
*/
public void testGetEvaluators()
{
this.testSetEvaluators();
}
/**
* Test of setEvaluators method, of class CompositeEvaluatorList.
*/
public void testSetEvaluators()
{
CompositeEvaluatorList<Number, Number> instance =
new CompositeEvaluatorList<Number, Number>();
assertNotNull(instance.getEvaluators());
assertTrue(instance.getEvaluators().isEmpty());
assertSame(instance.getEvaluators(), instance.getEvaluators());
Evaluator<?, ?>[] evaluatorsArray =
{
new Adder(),
new Multiplier(),
new Adder()
};
instance.setEvaluators(evaluatorsArray);
assertFalse(instance.getEvaluators().isEmpty());
assertEquals(evaluatorsArray.length, instance.getEvaluators().size());
for (int i = 0; i < evaluatorsArray.length; i++)
{
assertSame(evaluatorsArray[i], instance.getEvaluators().get(i));
}
ArrayList<Evaluator<?,?>> evaluatorsList = new ArrayList<Evaluator<?,?>>();
for (int i = 0; i < evaluatorsArray.length; i++)
{
evaluatorsList.add(evaluatorsArray[i]);
}
instance.setEvaluators(evaluatorsList);
assertNotSame(evaluatorsList, instance.getEvaluators());
assertFalse(instance.getEvaluators().isEmpty());
assertEquals(evaluatorsArray.length, instance.getEvaluators().size());
for (int i = 0; i < evaluatorsArray.length; i++)
{
assertSame(evaluatorsArray[i], instance.getEvaluators().get(i));
}
}
}