public void FitnessTrueTest()
 {
     double wantedBestResult = 19;
     ReachWantedResult target = new ReachWantedResult(wantedBestResult);
     bool actual = target.Fitness(_parents);
     Assert.IsTrue(actual);
     Assert.AreEqual(1, target.ActualCountOfReps);
 }
        public void FitnessFalseTest()
        {
            double wantedBestResult = 20;
            ReachWantedResult target1 = new ReachWantedResult(wantedBestResult);
            bool actual = target1.Fitness(_parents);
            Assert.IsFalse(actual);
            Assert.AreEqual(wantedBestResult, target1.BestResult);

            wantedBestResult = 21;
            ReachWantedResult target2 = new ReachWantedResult(wantedBestResult);
            actual = target2.Fitness(_parents);
            Assert.IsFalse(actual);
            Assert.AreNotEqual(wantedBestResult, target2.BestResult);
        }
        public void RunReachWantedResultTest()
        {
            _mutation = new NotRandomMutation();
            _selection = new TournamentSelection();
            _crossingover = new CyclicalCrossingover();

            int wantedResult = 6;
            IFitnessFunction fitnessFunction = new ReachWantedResult(wantedResult);
            int pCrossingover = 80;
            int pMutation = 60;
            Array.Sort(_closedTracks);
            double preBestResult = _closedTracks[0].GetTrackLength();
            GEngine target = new GEngine(_closedTracks, pCrossingover, pMutation, fitnessFunction, _mutation, _crossingover, _selection);
            target.Run();
            Assert.AreEqual(wantedResult, target.FitnessFunction.BestResult);
            Assert.IsTrue(preBestResult > target.FitnessFunction.BestResult);
        }