public void Evaluate_DiffChromosomes_DiffFitness() { var target = new EqualityFitness(); var chromosome = new EquationChromosome(30, 4); chromosome.ReplaceGene(0, new Gene(0)); chromosome.ReplaceGene(1, new Gene(7)); chromosome.ReplaceGene(2, new Gene(-43)); chromosome.ReplaceGene(3, new Gene(32)); var actual = target.Evaluate(chromosome); Assert.Less(actual, 0); chromosome = new EquationChromosome(30, 4); chromosome.ReplaceGene(0, new Gene(17)); chromosome.ReplaceGene(1, new Gene(7)); chromosome.ReplaceGene(2, new Gene(-43)); chromosome.ReplaceGene(3, new Gene(32)); actual = target.Evaluate(chromosome); Assert.AreEqual(0, actual); }
/// <summary> /// Draws the specified best chromosome. /// </summary> /// <param name="bestChromosome">The best chromosome.</param> public override void Draw(IChromosome bestChromosome) { var best = bestChromosome as EquationChromosome; var genes = best.GetGenes(); Console.WriteLine("Equation: {0} + 2*{1} + 3*{2} + 4*{3} = {4}", genes[0], genes[1], genes[2], genes[3], EqualityFitness.GetEquationResult(best)); }
/// <summary> /// Creates the fitness. /// </summary> /// <returns>The fitness.</returns> public override IFitness CreateFitness() { m_fitness = new EqualityFitness(); return(m_fitness); }