public void CreateInitialGeneration_AdamChromosomeCreateNewNull_Exception() { var population = new Population(2, 2, MockRepository.GenerateStub<ChromosomeBase>(4)); ExceptionAssert.IsThrowing(new InvalidOperationException("The Adam chromosome's 'CreateNew' method generated a null chromosome. This is a invalid behavior, please, check your chromosome code."), () => { population.CreateInitialGeneration(); }); }
public void EndCurrentGeneration_BestChromosomeChanged_ChangeEventRaise() { var target = new Population(2, 2, new ChromosomeStub()); var eventRaise = false; target.BestChromosomeChanged += (e, a) => { eventRaise = true; }; target.CreateInitialGeneration(); target.CurrentGeneration.Chromosomes.Each(c => c.Fitness = 1); target.CurrentGeneration.BestChromosome = target.CurrentGeneration.Chromosomes[0]; target.EndCurrentGeneration(); Assert.IsTrue(eventRaise); }
public void RegisterNewGeneration_AnyGeneration_DoNothing() { var target = new TrackingGenerationStrategy(); var population = new Population(2, 6, new ChromosomeStub()); population.CreateInitialGeneration(); target.RegisterNewGeneration(population); Assert.AreEqual(1, population.Generations.Count); population.CreateNewGeneration(new List<IChromosome>() { new ChromosomeStub(), new ChromosomeStub() }); target.RegisterNewGeneration(population); Assert.AreEqual(2, population.Generations.Count); population.CreateNewGeneration(new List<IChromosome>() { new ChromosomeStub(), new ChromosomeStub() }); target.RegisterNewGeneration(population); Assert.AreEqual(3, population.Generations.Count); population.CreateNewGeneration(new List<IChromosome>() { new ChromosomeStub(), new ChromosomeStub() }); target.RegisterNewGeneration(population); Assert.AreEqual(4, population.Generations.Count); }
public void RegisterNewGeneration_GenerationExceedGenerationsNumber_RemoveOldOne() { var target = new PerformanceGenerationStrategy(); var population = new Population(2, 6, new ChromosomeStub()); population.CreateInitialGeneration(); target.RegisterNewGeneration(population); Assert.AreEqual(1, population.Generations.Count); population.CreateNewGeneration(new List<IChromosome>() { new ChromosomeStub(), new ChromosomeStub() }); target.RegisterNewGeneration(population); Assert.AreEqual(1, population.Generations.Count); population.CreateNewGeneration(new List<IChromosome>() { new ChromosomeStub(), new ChromosomeStub() }); target.RegisterNewGeneration(population); Assert.AreEqual(1, population.Generations.Count); population.CreateNewGeneration(new List<IChromosome>() { new ChromosomeStub(), new ChromosomeStub() }); target.RegisterNewGeneration(population); Assert.AreEqual(1, population.Generations.Count); }