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