public void MutationOperator_Serialization()
        {
            MockMutationOperator op = new MockMutationOperator
            {
                MutationRate = .8
            };

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

            Assert.Equal(op.MutationRate, result.MutationRate);
        }
        public void MutationOperator_Mutate()
        {
            GeneticAlgorithm     algorithm = GetAlgorithm(.03);
            MockMutationOperator op        = new MockMutationOperator();

            op.Initialize(algorithm);
            GeneticEntity entity = new MockEntity();

            entity.Initialize(algorithm);
            entity.Age = 10;
            GeneticEntity mutant = op.Mutate(entity);

            Assert.NotSame(entity, mutant);
            Assert.Equal(entity.Age, mutant.Age);
            Assert.Equal(1, op.DoMutateCallCount);
        }
        public void MutationOperator_Mutate_NullEntity()
        {
            MockMutationOperator op = new MockMutationOperator();

            Assert.Throws <ArgumentNullException>(() => op.Mutate(null));
        }
        public void MutationOperator_Ctor_InvalidSetting2()
        {
            MockMutationOperator config = new MockMutationOperator();

            Assert.Throws <ValidationException>(() => config.MutationRate = -1);
        }
        public void MutationOperator_Ctor_NullAlgorithm()
        {
            MockMutationOperator op = new MockMutationOperator();

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