public void SingleAdditionNeuronInLayerUsingBuilders(decimal val1, decimal val2) { // Arrange var receiverBuilder = new FixedValueBuilder<IEnumerable<ValueStoringNeuron<decimal>>> { Value = new OutputLayerBuilder<decimal> { NumberOfNeurons = 1 }.Build() }; var layerBuilder = new DelayedSimpleHiddenLayerBuilder<decimal, ValueStoringNeuron<decimal>> { NumberOfNeurons = 1, NextLayerBuilder = receiverBuilder, FunctionSource = new ByDefaultConstructorBuilder<DecimalSumFunction>() }; var sut = new OnNextSplittingObserverDecorator<decimal>(new CompositeObserver<decimal>(layerBuilder.Build())); // Act sut.OnNext(new decimal[] { val1, val2 }); // Assert var result = receiverBuilder.Value.Single().LastValue; result.Should().Be(val1 + val2); }
public void SingleAdditionNeuronInLayer(decimal val1, decimal val2) { // Arrange var receiver = new ValueStoringNeuron<decimal>(); var sut = new OnNextSplittingObserverDecorator<decimal>(new CompositeObserver<decimal>(new IObserver<decimal>[] { new DelayedActivationNeuron<decimal, decimal>(new DecimalSumFunction(), receiver) })); // Act sut.OnNext(new decimal[] { val1, val2 }); // Assert var result = receiver.LastValue; result.Should().Be(val1 + val2); }
public void ManyAdditionNeuronInLayerUsingBuilders(decimal val1, decimal val2, int neuronCount) { // Arrange var receiverBuilder = new FixedValueBuilder<IEnumerable<ValueStoringNeuron<decimal>>> { Value = new OutputLayerBuilder<decimal> { NumberOfNeurons = neuronCount }.Build() }; var layerBuilder = new DelayedWrappingHiddenLayerBuilder<decimal, ValueStoringNeuron<decimal>> { FunctionSource = new ByDefaultConstructorBuilder<DecimalSumFunction>(), NextLayer = receiverBuilder }; var sut = new OnNextSplittingObserverDecorator<decimal>(new CompositeObserver<decimal>(layerBuilder.Build())); // Act sut.OnNext(new decimal[] { val1, val2 }); // Assert receiverBuilder.Value.Select(neuron => neuron.LastValue).Should().OnlyContain(value => value == val1 + val2); }