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);
        }
        /// <summary>
        /// Creates the fitness.
        /// </summary>
        /// <returns>The fitness.</returns>
        public override IFitness CreateFitness()
        {
            m_fitness = new EquationSolverFitness(m_equationResult, GetEquationResult);

            return(m_fitness);
        }