public void SelectionOperator_Select_NullPopulation()
        {
            GeneticAlgorithm      algorithm = GetAlgorithm();
            MockSelectionOperator op        = new MockSelectionOperator();

            op.Initialize(algorithm);
            Assert.Throws <ArgumentNullException>(() => op.SelectEntities(1, null));
        }
        public void SelectionOperator_Serialization()
        {
            MockSelectionOperator op = new MockSelectionOperator
            {
                SelectionBasedOnFitnessType = FitnessType.Raw
            };

            MockSelectionOperator result = (MockSelectionOperator)SerializationHelper.TestSerialization(op, new Type[0]);

            Assert.Equal(op.SelectionBasedOnFitnessType, result.SelectionBasedOnFitnessType);
        }
        public void SelectionOperator_Select_EmptyPopulation()
        {
            GeneticAlgorithm      algorithm = GetAlgorithm();
            MockSelectionOperator op        = new MockSelectionOperator();

            op.Initialize(algorithm);
            MockPopulation population = new MockPopulation();

            population.Initialize(algorithm);
            Assert.Throws <ArgumentException>(() => op.SelectEntities(1, population));
        }
        public void SelectionOperator_Select()
        {
            GeneticAlgorithm      algorithm = GetAlgorithm();
            MockSelectionOperator op        = new MockSelectionOperator();

            op.Initialize(algorithm);
            MockPopulation population = new MockPopulation();

            population.Initialize(algorithm);
            GeneticEntity entity1 = new MockEntity();

            entity1.Initialize(algorithm);
            GeneticEntity entity2 = new MockEntity();

            entity2.Initialize(algorithm);
            population.Entities.Add(entity1);
            population.Entities.Add(entity2);
            IList <GeneticEntity> selectedEntities = op.SelectEntities(1, population);

            Assert.Same(entity1, selectedEntities[0]);
            Assert.Equal(1, op.DoSelectCallCount);
        }
Esempio n. 5
0
        public async Task MultiDemeGeneticAlgorithm_CreateNextGeneration_Async()
        {
            TestMultiDemeGeneticAlgorithm algorithm = new TestMultiDemeGeneticAlgorithm
            {
                FitnessEvaluator  = new MockFitnessEvaluator(),
                GeneticEntitySeed = new MockEntity(),
                PopulationSeed    = new SimplePopulation
                {
                    MinimumPopulationSize = 3
                },
                MigrantCount      = 1,
                SelectionOperator = new MockSelectionOperator
                {
                    SelectionBasedOnFitnessType = FitnessType.Raw
                }
            };
            MockSelectionOperator selectionOp = new MockSelectionOperator();

            algorithm.SelectionOperator = selectionOp;
            await algorithm.InitializeAsync();

            PrivateObject accessor = new PrivateObject(algorithm);

            algorithm.Environment.Populations.Add(GetPopulation(algorithm));
            algorithm.Environment.Populations.Add(GetPopulation(algorithm));
            SimplePopulation population = GetPopulation(algorithm);

            algorithm.Environment.Populations.Add(population);

            int prevPopCount = population.Entities.Count;

            await(Task) accessor.Invoke("CreateNextGenerationAsync", population);

            Assert.Equal(1, selectionOp.DoSelectCallCount);
            Assert.Equal(prevPopCount, population.Entities.Count);
        }
        public void SelectionOperator_Ctor_NullAlgorithm()
        {
            MockSelectionOperator op = new MockSelectionOperator();

            Assert.Throws <ArgumentNullException>(() => op.Initialize(null));
        }