public void ConvertPopulation_PopulationConverted() { var newPopulationEvaluation = new double[] { 2, 2, 2 }; var populationManager = new TestPopulationManager(new double[] { 1, 1, 1 }); var engine = new TestGeneticSearchEngineBuilder(3, 10, populationManager).Build(); engine.Next(); var newPopulation = engine.SetCurrentPopulation(newPopulationEvaluation.ToChromosomes("Converted")); newPopulation.Population.GetChromosomes().AssertHasEvaluation(newPopulationEvaluation); newPopulation = engine.GetCurrentPopulation(); newPopulation.Population.GetChromosomes().AssertHasEvaluation(newPopulationEvaluation); }
public void GetCurrentPopulation_EngineRunning_ThrowException() { using (var engine = new TestGeneticSearchEngineBuilder(2, int.MaxValue, new TestPopulationManager(new double[] { 2, 2 })).Build()) { Task.Run(() => engine.Run()); while (!engine.IsRunning) { ; } engine.GetCurrentPopulation(); Assert.Fail("Should have thrown an exception by now"); } }
public void ChangeHistoryLastGeneration_AlgorithmPopulationNotChanged() { var expectedPopulation = new double[] { 1, 1 }; var engine = new TestGeneticSearchEngineBuilder(2, 10, expectedPopulation).IncludeAllHistory().Build(); var fakeChromosome = ChromosomeFactory.CreateChromosome(10, "ChangedChromosome"); var result = engine.Next(); result.History[result.History.Count - 1][0] = fakeChromosome; result = engine.GetCurrentPopulation(); foreach (var chromosome in result.Population.GetChromosomes()) { Assert.AreNotEqual(fakeChromosome, chromosome); } }