private void NeuronTest(double factor, bool expected)
        {
            // Arrange
            var weightingFactors = Enumerable.Range(0, 12 * 47 + 48).ToList().Select(x => factor).ToArray();
            var awariPits        = new[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 };

            var inputNeuron = new InputNeuron(0, weightingFactors);

            // Act
            inputNeuron.AcceptAwariPits(awariPits, 36);

            // Assert
            inputNeuron.Signal.Should().Be(expected);
        }
        private void LearningTest(double factor)
        {
            var pits             = new[] { 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
            var weightingFactors = Enumerable.Range(0, 12 * 47 + 48).ToList().Select(x => 0.5d).ToArray();
            var neuron           = new InputNeuron(0, weightingFactors);

            neuron.AcceptAwariPits(pits, 47);
            neuron.Learn(factor);

            neuron.WeightingFactors[46].Should().Be(0.5d + factor);
            neuron.WeightingFactors[47].Should().Be(0.5d - factor);
            neuron.WeightingFactors[48].Should().Be(0.5d + factor);
            neuron.WeightingFactors[49].Should().Be(0.5d - factor);
        }