aboutsummaryrefslogtreecommitdiffstats
path: root/src/jcgp/backend/tests/OutputTests.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/jcgp/backend/tests/OutputTests.java')
-rw-r--r--src/jcgp/backend/tests/OutputTests.java93
1 files changed, 93 insertions, 0 deletions
diff --git a/src/jcgp/backend/tests/OutputTests.java b/src/jcgp/backend/tests/OutputTests.java
new file mode 100644
index 0000000..7ff8a4a
--- /dev/null
+++ b/src/jcgp/backend/tests/OutputTests.java
@@ -0,0 +1,93 @@
+package jcgp.backend.tests;
+
+import static org.junit.Assert.assertTrue;
+import jcgp.JCGP.Resources;
+import jcgp.backend.population.Chromosome;
+import jcgp.backend.population.Connection;
+import jcgp.backend.population.Output;
+
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+/**
+ *
+ * Tests which cover the behaviour specified for an output.
+ *
+ * - An output contains a single source Connection, which can be set and got.
+ * - It should return the value of its source connection.
+ * - It must be addressable by an index set upon construction only.
+ *
+ *
+ * @author Eduardo Pedroni
+ *
+ */
+public class OutputTests {
+
+ private Output output;
+ private static Chromosome chromosome;
+ private static Resources resources;
+ // these are the test values
+ private final int outputValue = 10;
+ private final int outputIndex = 2;
+
+ @BeforeClass
+ public static void setUpBeforeClass() {
+ resources = new Resources();
+ chromosome = new Chromosome(resources);
+ }
+
+ @Before
+ public void setUp() throws Exception {
+ output = new Output(chromosome, outputIndex);
+ }
+
+ @Test
+ public void evaluationsTest() {
+ // set source connection, check that the appropriate value is returned
+ output.setConnection(0, new Connection() {
+
+ @Override
+ public Object getValue() {
+ // test value
+ return outputValue;
+ }
+
+ @Override
+ public String getDescription() {
+ // blank
+ return null;
+ }
+ });
+
+ assertTrue("Incorrect evaluation.", ((Integer) output.calculate()) == outputValue);
+ }
+
+ @Test
+ public void connectionTest() {
+ // set a new connection, check that it is correctly returned
+ Connection newConn = new Connection() {
+
+ @Override
+ public Object getValue() {
+ // blank
+ return 0;
+ }
+
+ @Override
+ public String getDescription() {
+ // blank
+ return null;
+ }
+ };
+ output.setConnection(0, newConn);
+
+ assertTrue("Incorrect connection returned.", output.getSource() == newConn);
+ }
+
+ @Test
+ public void indexTest() {
+ // check that the index returned is the one passed to the constructor
+ assertTrue("Incorrect index returned.", output.getIndex() == outputIndex);
+ }
+}