public void GenerationalTerminator_Serialization()
        {
            GenerationalTerminator terminator = new GenerationalTerminator();

            terminator.FinalGeneration = 5;

            GenerationalTerminator result = (GenerationalTerminator)SerializationHelper.TestSerialization(terminator, new Type[0]);

            Assert.Equal(terminator.FinalGeneration, result.FinalGeneration);
        }
        public void GenerationalTerminator_IsComplete()
        {
            int finalGeneration = 10;
            GeneticAlgorithm       algorithm  = GetAlgorithm(finalGeneration);
            PrivateObject          accessor   = new PrivateObject(algorithm, new PrivateType(typeof(GeneticAlgorithm)));
            GenerationalTerminator terminator = (GenerationalTerminator)algorithm.Terminator;

            terminator.Initialize(algorithm);
            Assert.False(terminator.IsComplete(), "Should not be complete at generation 0.");
            accessor.SetField("currentGeneration", (int)accessor.GetField("currentGeneration") + 1);
            Assert.False(terminator.IsComplete(), "Should not be complete at generation 1.");
            accessor.SetField("currentGeneration", finalGeneration);
            Assert.True(terminator.IsComplete(), "Should be complete.");
        }
        public void GenerationalTerminator_Ctor_InvalidSetting2()
        {
            GenerationalTerminator config = new GenerationalTerminator();

            Assert.Throws <ValidationException>(() => config.FinalGeneration = 0);
        }