public void TestInitialize()
        {
            mockModelInitializer  = new Mock <IModelInitializer>(MockBehavior.Strict);
            mockModelExecuter     = new Mock <IModelExecuter>(MockBehavior.Strict);
            mockPopulationBreeder = new Mock <IPopulationBreeder>(MockBehavior.Strict);
            random = new ThreadSafeRandom();

            sut = new GeneticLearner(populationSize, selectionSize, mockModelInitializer.Object, mockModelExecuter.Object, mockPopulationBreeder.Object, random);
        }
        public void TestInitialize()
        {
            random                    = new ThreadSafeRandom();
            modelInitializer          = new FullyConnectedNeuralNetworkInitializer(random);
            sigmoidActivationFunction = new SigmoidActivationFunction();
            modelExecuter             = new FullyConnectedNeuralNetworkExecuter(sigmoidActivationFunction);
            modelBreeder              = new GeneticModelBreeder(modelInitializer, random);
            populationBreeder         = new PolygamousPopulationBreeder(modelBreeder, random);

            sut = new GeneticLearner(populationSize, selectionSize, modelInitializer, modelExecuter, populationBreeder, random);
        }
        public void TestInitialize()
        {
            random = new ThreadSafeRandom();
            mockModelInitializer  = new Mock <IModelInitializer>(MockBehavior.Strict);
            mockModelExecuter     = new Mock <IModelExecuter>(MockBehavior.Strict);
            mockPopulationBreeder = new Mock <IPopulationBreeder>(MockBehavior.Strict);
            population            = new List <FullyConnectedNeuralNetworkModel>();

            sut = new GeneticLearner(populationSize, selectionSize, mockModelInitializer.Object, mockModelExecuter.Object, mockPopulationBreeder.Object, random);

            mockModelInitializer.Setup(m => m.CreateModel(It.Is <int[]>(it => it != null && activationCountsPerLayer.SequenceEqual(it)), activationFunction))
            .Returns(() =>
            {
                var model = CreateFullyConnectedNeuralNetworkModel();
                population.Add(model);

                return(model);
            });
        }