public void TestFitnessAssignment( )
        {
            MockDualObjective rank_1_a = new MockDualObjective( 0,2 );
            MockDualObjective rank_1_b = new MockDualObjective( 1,1 );
            MockDualObjective rank_1_c = new MockDualObjective( 2,0 );
            MockDualObjective d1 = new MockDualObjective( 1.5,1.6 );
            MockDualObjective d2 = new MockDualObjective( 2, 2 );
            MockDualObjective d3 = new MockDualObjective( 3, 1 );
            MockDualObjective d4 = new MockDualObjective( 3,3 );

            ZitlerThieleFitnessAssignment assignment = new ZitlerThieleFitnessAssignment( );
            var fittedScores = assignment.AssignFitness( new IObjectiveScores[]{d1, d2, d3,d4, rank_1_a, rank_1_b, rank_1_c} );
            Assert.AreEqual( 1.0 / 7, getFitness( fittedScores, rank_1_a ), 1e-12 );
            Assert.AreEqual( 3.0 / 7, getFitness( fittedScores, rank_1_b ), 1e-12 );
            Assert.AreEqual( 2.0 / 7, getFitness( fittedScores, rank_1_c ), 1e-12 );
            Assert.AreEqual( 10.0 / 7, getFitness( fittedScores, d1 ), 1e-12 );
            Assert.AreEqual( 10.0 / 7, getFitness( fittedScores, d2 ), 1e-12 );
            Assert.AreEqual( 9.0 / 7, getFitness( fittedScores, d3 ), 1e-12 );
            Assert.AreEqual( 13.0 / 7, getFitness( fittedScores, d4 ), 1e-12 );
        }
        public void TestFitnessAssignment( )
        {
            MockDualObjective rank_1_a = new MockDualObjective(0, 2);
            MockDualObjective rank_1_b = new MockDualObjective(1, 1);
            MockDualObjective rank_1_c = new MockDualObjective(2, 0);
            MockDualObjective d1       = new MockDualObjective(1.5, 1.6);
            MockDualObjective d2       = new MockDualObjective(2, 2);
            MockDualObjective d3       = new MockDualObjective(3, 1);
            MockDualObjective d4       = new MockDualObjective(3, 3);

            ZitlerThieleFitnessAssignment assignment = new ZitlerThieleFitnessAssignment( );
            var fittedScores = assignment.AssignFitness(new IObjectiveScores[] { d1, d2, d3, d4, rank_1_a, rank_1_b, rank_1_c });

            Assert.AreEqual(1.0 / 7, getFitness(fittedScores, rank_1_a), 1e-12);
            Assert.AreEqual(3.0 / 7, getFitness(fittedScores, rank_1_b), 1e-12);
            Assert.AreEqual(2.0 / 7, getFitness(fittedScores, rank_1_c), 1e-12);
            Assert.AreEqual(10.0 / 7, getFitness(fittedScores, d1), 1e-12);
            Assert.AreEqual(10.0 / 7, getFitness(fittedScores, d2), 1e-12);
            Assert.AreEqual(9.0 / 7, getFitness(fittedScores, d3), 1e-12);
            Assert.AreEqual(13.0 / 7, getFitness(fittedScores, d4), 1e-12);
        }