public void Calculate_Test() { double[] input = { 0.5, 1 }; double[] desiredOutput = { 0.681, 0.744 }; feedForwardNetwork.Init(); double[] output = feedForwardNetwork.Calculate(input); Assert.AreEqual(output.Length, desiredOutput.Length); //Check result Assert.AreEqual(desiredOutput[0], output[0], 0.001); Assert.AreEqual(desiredOutput[1], output[1], 0.001); //Second example double[] input2 = { -1, 2 }; double[] desiredOutput2 = { 0.669, 0.760 }; double[] output2 = feedForwardNetwork.Calculate(input2); Assert.AreEqual(output2.Length, desiredOutput.Length); //Check result Assert.AreEqual(desiredOutput2[0], output2[0], 0.001); Assert.AreEqual(desiredOutput2[1], output2[1], 0.001); }
public void CalculateRecurrent_Test() { double[] input ={ -1, 2}; double[] desiredOutputFirstIteration = { 0.669, 0.760 }; double[] desiredOutputSecondIteration = { 0.632, 0.699 }; recurrentNetwork.Init(); double[] outputFirstIteration = recurrentNetwork.Calculate(input); Assert.AreEqual(desiredOutputFirstIteration.Length, outputFirstIteration.Length); //Check result Assert.AreEqual(desiredOutputFirstIteration[0], outputFirstIteration[0], 0.001); Assert.AreEqual(desiredOutputFirstIteration[1], outputFirstIteration[1], 0.001); //Second iteration double[] outputSecondIteration = recurrentNetwork.Calculate(input); Assert.AreEqual(desiredOutputSecondIteration.Length, outputSecondIteration.Length); //Check result Assert.AreEqual(desiredOutputSecondIteration[0], outputSecondIteration[0], 0.001); Assert.AreEqual(desiredOutputSecondIteration[1], outputSecondIteration[1], 0.001); }
public void FillXorScreen(Genome genome, GameObject parent, GameObject screenPrefab) { foreach (Transform child in parent.transform) { Destroy(child.gameObject); } for (int i = 0; i <= 10; i++) { for (int j = 0; j <= 10; j++) { double xVal = (double)i / (double)10; double yVal = (double)j / (double)10; GameObject obj = Instantiate(screenPrefab, parent.transform, false); obj.transform.localPosition = new Vector3(i, j, 0); //Get values for xor float result = (float)genome.Calculate(new double[] { xVal, yVal, 1 })[0]; obj.GetComponent <Renderer>().material.color = new Color(result, result, result); } } }