public void CreateNew_ExpectedResultAndLenth_Created()
 {
     var target = new EquationChromosome(10, 2);
     var newCreated = target.CreateNew() as EquationChromosome;
     Assert.AreEqual(target.Length, newCreated.Length);
     Assert.AreEqual(target.ResultRange, newCreated.ResultRange);
 }
示例#2
0
        public static int GetEquationResult(EquationChromosome equalityChromosome)
        {
            var genes = equalityChromosome.GetGenes();
            var a = (int)genes[0].Value;
            var b = (int)genes[1].Value;
            var c = (int)genes[2].Value;
            var d = (int)genes[3].Value;

            return a + (2 * b) + (3 * c) + (4 * d);
        }
示例#3
0
        public static int GetEquationResult(EquationChromosome equalityChromosome)
        {
            var genes = equalityChromosome.GetGenes();
            var a     = (int)genes[0].Value;
            var b     = (int)genes[1].Value;
            var c     = (int)genes[2].Value;
            var d     = (int)genes[3].Value;

            return(a + (2 * b) + (3 * c) + (4 * d));
        }
        public void Evaluate_DiffChromosomes_DiffFitness()
        {
            // Equation A + B = 3.
            var target = new EquationSolverFitness (
                             3,
                             (genes) => {
                                return genes.Select(g => (int) g.Value).Sum();
                             });

            var chromosome = new EquationChromosome (3, 2);
            chromosome.ReplaceGene (0, new Gene (1));
            chromosome.ReplaceGene (1, new Gene (2));

            var actual = target.Evaluate (chromosome);
            Assert.AreEqual (0, actual);

            chromosome.ReplaceGene (1, new Gene (3));

            actual = target.Evaluate (chromosome);
            Assert.AreEqual (-1, actual);
        }