diff options
author | Eduardo Pedroni <ep625@york.ac.uk> | 2014-04-01 23:00:53 +0100 |
---|---|---|
committer | Eduardo Pedroni <ep625@york.ac.uk> | 2014-04-01 23:00:53 +0100 |
commit | 02fd2bc7059da416937beb1abe67e5ca60379030 (patch) | |
tree | 609341fe10aaa0f2dc45a1e72eba20bd24fb1281 /src/jcgp/tests/NodeTests.java | |
parent | a757deacded0d7357a9f68462d3f2051e16004ee (diff) |
Settings pane now actually controls the parameters, not much left to do.
Diffstat (limited to 'src/jcgp/tests/NodeTests.java')
-rw-r--r-- | src/jcgp/tests/NodeTests.java | 196 |
1 files changed, 0 insertions, 196 deletions
diff --git a/src/jcgp/tests/NodeTests.java b/src/jcgp/tests/NodeTests.java deleted file mode 100644 index d8aa742..0000000 --- a/src/jcgp/tests/NodeTests.java +++ /dev/null @@ -1,196 +0,0 @@ -package jcgp.tests; - -import static org.junit.Assert.assertTrue; -import jcgp.JCGP.Resources; -import jcgp.function.Arithmetic; -import jcgp.function.Function; -import jcgp.population.Chromosome; -import jcgp.population.Connection; -import jcgp.population.Node; - -import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Test; - -/** - * - * Tests which cover the behaviour specified for a node. - * - * - A node should contain read-only row and column values which are set upon construction. - * - It should contain a fully accessible Function object. - * - It should contain a set of connections which can be initialised and randomly - * modified. It should be able to return an addressed connection. - * - It should be able to compute a value using its function with its connections as arguments. - * - * WARNING: changing parameters may cause the tests to incorrectly fail! - * - * @author Eduardo Pedroni - * - */ -public class NodeTests { - - private Node node; - private static Chromosome chromosome; - private static Resources resources; - // these numbers will be used by the node under test - private final int arg1 = 2; - private final int arg2 = 5; - - @BeforeClass - public static void setUpBeforeClass() { - - resources = new Resources(); - - chromosome = new Chromosome(resources); - } - - @Before - public void setUp() throws Exception { - node = new Node(chromosome, 0, 0, resources.getInt("arity")); - // make node with anonymous addition function and hard-coded value connections - node.initialise(new Arithmetic.Addition(), - new Connection[]{new Connection() { - - @Override - public Object getValue() { - // hardcode a value - return arg1; - } - - @Override - public String getDescription() { - // blank - return null; - } - - }, - new Connection() { - - @Override - public Object getValue() { - // hardcode a value - return arg2; - } - - @Override - public String getDescription() { - // blank - return null; - } - - }}); - } - - @Test - public void rowAndColumnTest() { - assertTrue("Incorrect row.", node.getRow() == 0); - assertTrue("Incorrect column.", node.getColumn() == 0); - } - - @Test - public void functionTest() { - // make a new function and assign to node - Function f = new Function() { - - @Override - public Object run(Connection... connections) { - // blank - return 0; - } - - @Override - public int getArity() { - // blank - return 0; - } - - @Override - public String getName() { - // blank - return null; - } - }; - - node.setFunction(f); - - // check that the function returned by the node is f - assertTrue("Incorrect function returned.", node.getFunction() == f); - // check that it outputs 0 as it should - assertTrue("Incorrect function output.", ((Integer) node.getValue()) == 0); - } - - @Test - public void evaluationTest() { - // check that addition is working - assertTrue("Node did not return expected value (sum of arguments). Output was: " + ((int) node.getValue()), - ((int) node.getValue()) == arg1 + arg2); - - // put in a different function, check the output has changed appropriately - node.setFunction(new Arithmetic.Subtraction()); - - assertTrue("Node did not return expected value (difference of arguments).", ((Integer) node.getValue()) == arg1 - arg2); - - } - - @Test - public void connectionsTest() { - // make new blank connections, check that they are returned correctly when addressed - Connection conn0, conn1, conn2; - conn0 = new Connection() { - - @Override - public Object getValue() { - // blank - return 0; - } - - @Override - public String getDescription() { - // blank - return null; - } - - }; - conn1 = new Connection() { - - @Override - public Object getValue() { - // blank - return 0; - } - - @Override - public String getDescription() { - // blank - return null; - } - - }; - node.initialise(null, conn0, conn1); - - assertTrue("Connection 0 is incorrect.", node.getConnection(0) == conn0); - assertTrue("Connection 1 is incorrect.", node.getConnection(1) == conn1); - - // make yet another connection, set it randomly, check that it is one of the node's connections - conn2 = new Connection() { - - @Override - public Object getValue() { - // blank - return 0; - } - - @Override - public String getDescription() { - // blank - return null; - } - }; - node.setConnection(resources.getRandomInt(resources.getInt("arity")), conn2); - - assertTrue("Connection was not found in node.", node.getConnection(0) == conn2 || node.getConnection(1) == conn2); - - } - - -} |