/*
* File: MutationReproducerTest.java
* Authors: Jonathan McClain
* Company: Sandia National Laboratories
* Project: Cognitive Framework Lite
*
* Copyright May 9, 2006, 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.learning.algorithm.genetic.reproducer;
import gov.sandia.cognition.learning.algorithm.annealing.DummyPerturber;
import gov.sandia.cognition.learning.algorithm.genetic.EvaluatedGenome;
import gov.sandia.cognition.learning.algorithm.annealing.Perturber;
import gov.sandia.cognition.learning.algorithm.genetic.selector.DummySelector;
import gov.sandia.cognition.learning.algorithm.genetic.selector.Selector;
import java.util.ArrayList;
import junit.framework.*;
import java.util.Collection;
/**
* This class implements JUnit tests for the following classes:
*
* MutationReproducerTest
*
* @author Jonathan McClain
* @since 1.0
*/
public class MutationReproducerTest extends TestCase
{
/**
* Creates a new instance of MutationReproducerTest.
*/
public MutationReproducerTest(String testName)
{
super(testName);
}
/**
* Called before each test is run.
*/
protected void setUp() throws Exception
{
}
/**
* Called after each test is run.
*/
protected void tearDown() throws Exception
{
}
/**
* Returns the test.
*/
public static Test suite()
{
TestSuite suite = new TestSuite(MutationReproducerTest.class);
return suite;
}
/**
* Test of reproduce method, of class
* gov.sandia.isrc.learning.reinforcement.MutationReproducer.
*/
public void testReproduce() {
System.out.println("reproduce");
DummyPerturber dummyPerturber = new DummyPerturber();
DummySelector dummySelector = new DummySelector();
MutationReproducer<Integer> reproducer =
new MutationReproducer<Integer>(
dummyPerturber,
dummySelector);
ArrayList<EvaluatedGenome<Integer>> population =
new ArrayList<EvaluatedGenome<Integer>>(10);
for(int i = 0; i < 10; i++)
{
EvaluatedGenome<Integer> genome =
new EvaluatedGenome<Integer>(0.0, 0);
population.add(i, genome);
}
Collection<Integer> newPopulation = reproducer.reproduce(population);
assertEquals(
"Perturb was called an incorrect number of times",
10,
dummyPerturber.getPerturbCount());
assertEquals(
"Select was called an incorrect number of times",
1,
dummySelector.getSelectCount());
assertEquals(
"Returned population was incorrect size",
population.size(),
newPopulation.size());
}
/**
* Test of getPerturber method, of class
* gov.sandia.isrc.learning.reinforcement.MutationReproducer.
*/
public void testGetPerturber() {
System.out.println("getPerturber");
MutationReproducer<Integer> reproducer =
new MutationReproducer<Integer>(
null,
null);
DummyPerturber expected = new DummyPerturber();
reproducer.setPerturber(expected);
Perturber<Integer> actual = reproducer.getPerturber();
assertEquals(
"getPerturber did not return the expected Perturber",
expected,
actual);
}
/**
* Test of getSelector method, of class
* gov.sandia.isrc.learning.reinforcement.MutationReproducer.
*/
public void testGetSelector() {
System.out.println("getSelector");
MutationReproducer<Integer> reproducer =
new MutationReproducer<Integer>(
null,
null);
DummySelector expected = new DummySelector();
reproducer.setSelector(expected);
Selector<Integer> actual = reproducer.getSelector();
assertEquals(
"getSelector did not return the expected Selector",
expected,
actual);
}
/**
* Test of setPerturber method, of class
* gov.sandia.isrc.learning.reinforcement.MutationReproducer.
*/
public void testSetPerturber() {
System.out.println("setPerturber");
MutationReproducer<Integer> reproducer =
new MutationReproducer<Integer>(
null,
null);
DummyPerturber expected = new DummyPerturber();
reproducer.setPerturber(expected);
Perturber<Integer> actual = reproducer.getPerturber();
assertEquals(
"setPerturber did not set the expected Perturber",
expected,
actual);
}
/**
* Test of setSelector method, of class
* gov.sandia.isrc.learning.reinforcement.MutationReproducer.
*/
public void testSetSelector() {
System.out.println("setSelector");
MutationReproducer<Integer> reproducer =
new MutationReproducer<Integer>(
null,
null);
DummySelector expected = new DummySelector();
reproducer.setSelector(expected);
Selector<Integer> actual = reproducer.getSelector();
assertEquals(
"setSelector did not set the expected Selector",
expected,
actual);
}
}