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); }
/// <summary> /// Initializes a new instance of the <see cref="GeneticSharp.Domain.Populations.Population"/> class. /// </summary> /// <param name="minSize">The minimum size (chromosomes).</param> /// <param name="maxSize">The maximum size (chromosomes).</param> /// <param name="adamChromosome">The original chromosome of all population ;).</param> public Population(int minSize, int maxSize, IChromosome adamChromosome) { if (minSize < 2) { throw new ArgumentOutOfRangeException("minSize", "The minimum size for a population is 2 chromosomes."); } if (maxSize < minSize) { throw new ArgumentOutOfRangeException("maxSize", "The maximum size for a population should be equal or greater than minimum size."); } ExceptionHelper.ThrowIfNull("adamChromosome", adamChromosome); CreationDate = DateTime.Now; MinSize = minSize; MaxSize = maxSize; m_adamChromosome = adamChromosome; Generations = new List<Generation>(); GenerationStrategy = new TrackingGenerationStrategy(); }
/// <summary> /// Initializes a new instance of the <see cref="GeneticSharp.Domain.Populations.Population"/> class. /// </summary> /// <param name="minSize">The minimum size (chromosomes).</param> /// <param name="maxSize">The maximum size (chromosomes).</param> /// <param name="adamChromosome">The original chromosome of all population ;).</param> public Population(int minSize, int maxSize, IChromosome adamChromosome) { if (minSize < 2) { throw new ArgumentOutOfRangeException("minSize", "The minimum size for a population is 2 chromosomes."); } if (maxSize < minSize) { throw new ArgumentOutOfRangeException("maxSize", "The maximum size for a population should be equal or greater than minimum size."); } ExceptionHelper.ThrowIfNull("adamChromosome", adamChromosome); CreationDate = DateTime.Now; MinSize = minSize; MaxSize = maxSize; m_adamChromosome = adamChromosome; Generations = new List <Generation>(); GenerationStrategy = new TrackingGenerationStrategy(); }