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