public void DoubleMutation_ValuePercentConstructorTest()
        {
            double percent = 2.0;
            DoubleMutation_ValuePercent target = new DoubleMutation_ValuePercent(percent);

            Assert.AreEqual(target.Type, OperatorType.Double);
        }
        public void MutateTest()
        {
            double percent = 20.0;
            DoubleMutation_ValuePercent target = new DoubleMutation_ValuePercent(percent);
            Point point = new DoublePoint(10);
            Point actual;

            actual = target.Mutate(point);
            Assert.IsTrue(actual.StringRepresent().Equals("(12)") || actual.StringRepresent().Equals("(8)"));
        }
예제 #3
0
        private void SetDoubleDefaults()
        {
            double[] p1 = { 0.0, 0.0 };
            double[] p2 = { 5.0, 5.0 };

            Initialization = new DoubleInitialization_RandomBetweenTwoPoints(
                new DoublePoint(p1), new DoublePoint(p2), 10);
            SelectionIF S  = new Selection_PercentAboveAverage(50);
            CrossoverIF C2 = new DoubleCrossover_Random();
            MutationIF  M  = new DoubleMutation_ValuePercent(5.0);

            Operations.Add(S);
            Operations.Add(C2);
            Operations.Add(M);
        }
        public void OperationsTest()
        {
            EvaluationIF     e        = new DoubleEvaluation_Logarithmic();
            GeneticAlgorithm target   = new GeneticAlgorithm(e);
            IList <Operator> expected = new List <Operator>();
            SelectionIF      S        = new Selection_PercentAboveAverage(50);
            CrossoverIF      C2       = new DoubleCrossover_Random();
            MutationIF       M        = new DoubleMutation_ValuePercent(5.0);

            expected.Add(S);
            expected.Add(C2);
            expected.Add(M);
            IList <Operator> actual;

            target.Operations = expected;
            actual            = target.Operations;
            Assert.AreEqual(expected, actual);
        }
        public void OperateTest()
        {
            double percent = 2.0;
            DoubleMutation_ValuePercent target = new DoubleMutation_ValuePercent(percent);
            DoublePoint p1 = new DoublePoint(10);
            DoublePoint p2 = new DoublePoint(1);
            DoublePoint p3 = new DoublePoint(15);
            DoublePoint p4 = new DoublePoint(17);
            DoublePoint p5 = new DoublePoint(12);
            PointSet    ps = new PointSet(new HashSet <Point>()
            {
                p1, p2, p3, p4, p5
            });
            PointSet expected = new PointSet(new HashSet <Point>()
            {
                p1, p2, p3, p4, p5
            });
            PointSet actual;

            actual = target.Operate(ps);
            Assert.AreEqual(expected.Set.Count, actual.Set.Count);
        }
        public void GeneticAlgorithmConstructorTest()
        {
            List <Operator> operators = new List <Operator>();
            SelectionIF     S         = new Selection_PercentAboveAverage(50);
            CrossoverIF     C2        = new DoubleCrossover_Random();
            MutationIF      M         = new DoubleMutation_ValuePercent(5.0);

            operators.Add(S);
            operators.Add(C2);
            operators.Add(M);

            double[] p1 = { 0.0, 0.0 };
            double[] p2 = { 5.0, 5.0 };

            InitializationIF initialization = new DoubleInitialization_RandomBetweenTwoPoints(
                new DoublePoint(p1), new DoublePoint(p2), 10);

            EvaluationIF     evaluation = new DoubleEvaluation_Trigonometric();
            GeneticAlgorithm target     = new GeneticAlgorithm(operators, initialization, evaluation);

            Assert.IsNotNull(target.Operations);
            Assert.IsNotNull(target.Initialization);
            Assert.IsNotNull(target.Evaluation);
        }