예제 #1
0
        public void End_AnyChromosomeWithoutFitness_Exception()
        {
            var target = new Generation(1, new List<IChromosome>() {
                new ChromosomeStub() { Fitness = 0.2 },
                new ChromosomeStub() { Fitness = null},
                new ChromosomeStub() { Fitness = 0.1 }
            });

            ExceptionAssert.IsThrowing(new InvalidOperationException("There is unknown problem in current generation, because a chromosome has no fitness value."), () =>
            {
                target.End(2);
            });
        }
예제 #2
0
        public void End_ChromosomeNumberGreaterThan_Take()
        {
            var target = new Generation(1, new List<IChromosome>() {
                new ChromosomeStub() { Fitness = 0.2 },
                new ChromosomeStub() { Fitness = 0.3 },
                new ChromosomeStub() { Fitness = 0.1 }
            });

            target.End(2);
            Assert.AreEqual(2, target.Chromosomes.Count);
            Assert.AreEqual(0.3, target.Chromosomes[0].Fitness);
            Assert.AreEqual(0.2, target.Chromosomes[1].Fitness);
        }