/*
* 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.OperationIterator;
import org.testng.annotations.Test;
/**
* Tests proper behavior of {@link cz.cvut.felk.cig.jcop.problem.tsp.SwitchCityOperation} operatoin.
*
* @author Ondrej Skalicka
*/
public class SwitchCityOperationTest {
@Test
public void testExecute() throws Exception {
TSP problem = new TSP(new Integer[][]{
{0, 1, 2},
{3, 0, 4},
{5, 6, 0},
});
Configuration startingConfiguration = problem.getStartingConfiguration();
OperationIterator operationIterator = problem.getOperationIterator(startingConfiguration);
Configuration configuration;
// [0,1,2] -> [1,0,2]
configuration = operationIterator.next().execute(startingConfiguration);
assert configuration.valueAt(0) == 1 : "Expected configuration to has index 0 = 1, " + configuration.valueAt(0) + " found";
assert configuration.valueAt(1) == 0 : "Expected configuration to has index 1 = 0, " + configuration.valueAt(1) + " found";
assert configuration.valueAt(2) == 2 : "Expected configuration to has index 2 = 2, " + configuration.valueAt(2) + " found";
// [0,1,2] -> [2,1,0]
configuration = operationIterator.next().execute(startingConfiguration);
assert configuration.valueAt(0) == 2 : "Expected configuration to has index 0 = 2, " + configuration.valueAt(0) + " found";
assert configuration.valueAt(1) == 1 : "Expected configuration to has index 1 = 1, " + configuration.valueAt(1) + " found";
assert configuration.valueAt(2) == 0 : "Expected configuration to has index 2 = 0, " + configuration.valueAt(2) + " found";
// [0,1,2] -> [0,2,1]
configuration = operationIterator.next().execute(startingConfiguration);
assert configuration.valueAt(0) == 0 : "Expected configuration to has index 0 = 0, " + configuration.valueAt(0) + " found";
assert configuration.valueAt(1) == 2 : "Expected configuration to has index 1 = 2, " + configuration.valueAt(1) + " found";
assert configuration.valueAt(2) == 1 : "Expected configuration to has index 2 = 1, " + configuration.valueAt(2) + " found";
}
}