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); }
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 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); }