/*
* Copyright © 2010 by Ondrej Skalicka. All Rights Reserved
*/
package cz.cvut.felk.cig.jcop.problem.tsp;
import cz.cvut.felk.cig.jcop.problem.Configuration;
import cz.cvut.felk.cig.jcop.problem.Fitness;
import org.testng.annotations.Test;
import java.util.ArrayList;
import java.util.List;
/**
* Tests proper behavior of {@link cz.cvut.felk.cig.jcop.problem.tsp.TSPFitness} fitness.
*
* @author Ondrej Skalicka
*/
public class TSPFitnessTest {
@Test
public void testGetValue() throws Exception {
TSP problem;
Fitness fitness;
TSPFitness tspfitness;
problem = new TSP(new Integer[][]{
{0, 1, 2, 5},
{3, 0, 4, 5},
{5, 6, 0, 5},
{5, 6, 5, 0},
});
fitness = problem.getDefaultFitness();
assert fitness instanceof TSPFitness : "Expected instance of TSPFitness, " + (fitness == null ? "null" : fitness.getClass().getSimpleName()) + " found.";
tspfitness = (TSPFitness) fitness;
assert tspfitness.maxDistance >= 9 : "Expected max distance in TSP fitness to be greater or equal to 9, " + tspfitness.maxDistance + " found";
double maxDistance = tspfitness.maxDistance;
List<Integer> list;
Configuration configuration;
// TODO: fix tests
/*
list = new ArrayList<Integer>(4);
list.add(0);
list.add(1);
list.add(2);
list.add(3);
configuration = new Configuration(list, "test");
// 1 + 4
assert fitness.getValue(configuration) == maxDistance - 15.0 : "Expected fitness " + (maxDistance - 15.0) + ", got " + fitness.getValue(configuration);
list = new ArrayList<Integer>(4);
list.add(2);
list.add(0);
list.add(3);
list.add(1);
configuration = new Configuration(list, "test");
// 5 + 1
assert fitness.getValue(configuration) == maxDistance - 20.0 : "Expected fitness " + (maxDistance - 20.0) + ", got " + fitness.getValue(configuration);
list = new ArrayList<Integer>(4);
list.add(3);
list.add(1);
list.add(2);
list.add(0);
configuration = new Configuration(list, "test");
// 4 + 5
assert fitness.getValue(configuration) == maxDistance - 20.0 : "Expected fitness " + (maxDistance - 20.0) + ", got " + fitness.getValue(configuration);*/
}
}