public void The_neural_network_improves_its_performance_by_learning()
        {
            var randomizer = new Randomizer();
            var teacher    = new Teacher(randomizer, new AwariEvaluator());

            var brain = new Brain(new WeightingFactorsRepository(randomizer));

            brain.BuildNeuronLayers();

            teacher.Teach(brain, 1000);
        }
        public void The_brain_can_learn_because_likelyness_of_preferred_outcome_is_higher()
        {
            var brain = new Brain(new WeightingFactorsRepository(new Randomizer()), learningFactor: 0.01d);

            brain.BuildNeuronLayers();

            var scores = brain.Evaluate(_testPosition, 0);
            var before = scores[48].Value;

            WriteScores(scores);

            brain.Learn(_testPosition, 0, 0);

            scores = brain.Evaluate(_testPosition, 0);
            var after = scores[48].Value;

            WriteScores(scores);

            after.Should().BeGreaterThan(before);
        }