예제 #1
0
        public void UniformIntegerMutationOperator_GenerateMutation_NullEntity()
        {
            UniformIntegerMutationOperator op = new UniformIntegerMutationOperator();
            PrivateObject accessor            = new PrivateObject(op);

            Assert.Throws <ArgumentNullException>(() => accessor.Invoke("GenerateMutation", (GeneticEntity)null));
        }
예제 #2
0
        public void UniformIntegerMutationOperatorTest_Mutate()
        {
            MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm
            {
                PopulationSeed    = new MockPopulation(),
                SelectionOperator = new MockSelectionOperator(),
                FitnessEvaluator  = new MockFitnessEvaluator(),
                GeneticEntitySeed = new IntegerListEntity
                {
                    MinimumStartingLength = 4,
                    MaximumStartingLength = 4,
                    MaxElementValue       = 2,
                    MinElementValue       = 1
                },
                MutationOperator = new UniformIntegerMutationOperator
                {
                    MutationRate = 1
                }
            };
            UniformIntegerMutationOperator op = new UniformIntegerMutationOperator {
                MutationRate = 1
            };

            op.Initialize(algorithm);
            IntegerListEntity entity = new IntegerListEntity {
                MinimumStartingLength = 4, MaximumStartingLength = 4, MaxElementValue = 2, MinElementValue = 1
            };

            entity.Age = 10;
            entity.Initialize(algorithm);
            entity[0] = 1;
            entity[1] = 1;
            entity[2] = 2;
            entity[3] = 1;
            GeneticEntity mutant = op.Mutate(entity);

            Assert.Equal("2, 2, 1, 2", mutant.Representation);
            Assert.Equal(0, mutant.Age);
        }