2017-07-25 15:11:02 -07:00
|
|
|
package com.baeldung.neuroph;
|
|
|
|
|
|
|
|
import org.junit.After;
|
|
|
|
import org.junit.Before;
|
|
|
|
import org.junit.Test;
|
|
|
|
import org.neuroph.core.NeuralNetwork;
|
|
|
|
|
|
|
|
import static org.junit.Assert.*;
|
|
|
|
|
2017-12-13 11:25:47 +01:00
|
|
|
public class XORIntegrationTest {
|
2017-07-25 15:11:02 -07:00
|
|
|
private NeuralNetwork ann = null;
|
|
|
|
|
2017-07-30 00:24:14 -07:00
|
|
|
private void print(String input, double output, double actual) {
|
|
|
|
System.out.println("Testing: " + input + " Expected: " + actual + " Result: " + output);
|
|
|
|
}
|
|
|
|
|
2017-07-25 15:11:02 -07:00
|
|
|
@Before
|
|
|
|
public void annInit() {
|
|
|
|
ann = NeurophXOR.trainNeuralNetwork(NeurophXOR.assembleNeuralNetwork());
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void leftDisjunctTest() {
|
|
|
|
ann.setInput(0, 1);
|
|
|
|
ann.calculate();
|
2017-07-30 00:24:14 -07:00
|
|
|
print("0, 1", ann.getOutput()[0], 1.0);
|
|
|
|
assertEquals(ann.getOutput()[0], 1.0, 0.0);
|
2017-07-25 15:11:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void rightDisjunctTest() {
|
|
|
|
ann.setInput(1, 0);
|
|
|
|
ann.calculate();
|
2017-07-30 00:24:14 -07:00
|
|
|
print("1, 0", ann.getOutput()[0], 1.0);
|
|
|
|
assertEquals(ann.getOutput()[0], 1.0, 0.0);
|
2017-07-25 15:11:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void bothFalseConjunctTest() {
|
|
|
|
ann.setInput(0, 0);
|
|
|
|
ann.calculate();
|
2017-07-30 00:24:14 -07:00
|
|
|
print("0, 0", ann.getOutput()[0], 0.0);
|
|
|
|
assertEquals(ann.getOutput()[0], 0.0, 0.0);
|
2017-07-25 15:11:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
public void bothTrueConjunctTest() {
|
|
|
|
ann.setInput(1, 1);
|
|
|
|
ann.calculate();
|
2017-07-30 00:24:14 -07:00
|
|
|
print("1, 1", ann.getOutput()[0], 0.0);
|
|
|
|
assertEquals(ann.getOutput()[0], 0.0, 0.0);
|
2017-07-25 15:11:02 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
@After
|
|
|
|
public void annClose() {
|
|
|
|
ann = null;
|
|
|
|
}
|
2017-07-30 00:24:14 -07:00
|
|
|
}
|