Example #1
0
        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));
        }
Example #2
0
        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));
        }
Example #3
0
        public void AddInput_NeuronPassed_ConnectionCreated()
        {
            var activationFunction = new Mock <IActivationFunction>();
            var inputFunction      = new Mock <IInputFunction>();

            var neuron = new Neuron(activationFunction.Object, inputFunction.Object);

            var inputNeuron = new Neuron(activationFunction.Object, inputFunction.Object);

            neuron.AddInputNeuron(inputNeuron);

            Assert.AreEqual(1, neuron.Inputs.Count);
        }
Example #4
0
        public void AddInputNeuron_NeuronPassed_InputProperlySet()
        {
            var neuron      = new Neuron(false, 1.11);
            var inputNeuron = new Mock <INeuron>();
            var mockList    = new List <IConnection>();

            inputNeuron.SetupGet(x => x.Outputs).Returns(mockList);

            neuron.AddInputNeuron(inputNeuron.Object, 3.33);

            Assert.Equal(1, neuron.Inputs.Count);
            Assert.Equal(inputNeuron.Object, neuron.Inputs[0].InputNeruon);
            Assert.Equal(neuron, neuron.Inputs[0].OutputNeruon);
            Assert.Equal(3.33, neuron.Inputs[0].Weight);
        }