public void CalculateOutput_HasAllInputs_CalculatesAndStoresValue() { var neuron = new Neuron(); neuron.AddInputNeuron(new Neuron(14), .5m); neuron.AddInputNeuron(new Neuron(29), .25m); neuron.AddInputNeuron(new Neuron(4), -.75m); Assert.That(neuron.CalculateOutput(), Is.EqualTo(11.25m)); Assert.That(neuron.CalculateOutput(), Is.EqualTo(11.25m)); }
public void CalculateOutput_MultiLayer_CalculatesAndStoresValue() { var inputNeuron1 = new Neuron("inputNeuron1", 1); var inputNeuron2 = new Neuron("inputNeuron2", 2); var layer1Neuron1 = new Neuron("layer1Neuron1"); var layer1Neuron2 = new Neuron("layer1Neuron2"); var outNeuron1 = new Neuron("outNeuron1"); var outNeuron2 = new Neuron("outNeuron2"); layer1Neuron1.AddInputNeuron(inputNeuron1, .1m); layer1Neuron1.AddInputNeuron(inputNeuron2, .2m); layer1Neuron2.AddInputNeuron(inputNeuron1, .3m); layer1Neuron2.AddInputNeuron(inputNeuron2, .4m); outNeuron1.AddInputNeuron(layer1Neuron1, .5m); outNeuron1.AddInputNeuron(layer1Neuron2, .6m); outNeuron2.AddInputNeuron(layer1Neuron1, .7m); outNeuron2.AddInputNeuron(layer1Neuron2, .8m); Assert.That(outNeuron1.CalculateOutput(), Is.EqualTo(0.91m)); Assert.That(outNeuron2.CalculateOutput(), Is.EqualTo(1.23m)); }
public void CalculateOutput_CorrectValues() { var n = new Neuron(2); n.weights = new List <double> { 1.0, 2.0 }; n.bias = -1.0; Assert.AreEqual(0.9525741268224331, n.CalculateOutput(new List <double> { 2.0, 1.0 })); Assert.AreEqual(0.5, n.CalculateOutput(new List <double> { 3.0, -1.0 })); }
public void CalculateOutput_MockingFunctions_OutputReturned() { var activationFunction = new Mock <IActivationFunction>(); activationFunction.Setup(x => x.CalculateOutput(It.IsAny <double>())).Returns(111); var inputFunction = new Mock <IInputFunction>(); inputFunction.Setup(x => x.CalculateInput(It.IsAny <List <ISynapse> >())).Returns(23); var neuron = new Neuron(activationFunction.Object, inputFunction.Object); Assert.AreEqual(111, neuron.CalculateOutput()); }
public void CalculateOutput_ShouldWork() { int[] neuronAmounts = new int[] { 4, 3, 5 }; NetworkBuilder networkBuilder = new(); Network network = networkBuilder.AddLayers(neuronAmounts).Build(); network.Layers[0].Neurons.ForEach(n => n.Weights = new List <double>(new double[] { .1, .2, .3, .4 })); network.Layers[1].Neurons.ForEach(n => n.Weights = new List <double>(new double[] { .4, .5, .6, .7, .8 })); double expectedOutput = 12.5; double actualOutput = Neuron.CalculateOutput(new double[] { 5, 6, 2, 3 }, new double[] { .9, .8, .7, .6 }); Assert.Equal(expectedOutput, actualOutput); }