static void Main(string[] args) { Logger logger = new Logger(); logger.Log("Simulation, initialization"); Console.WriteLine("initialize Simulation using following values:"); GeneticParameters options = new GeneticParameters() { MaxPopulation = 200, MaxGeneration = 100, MutationChance = 0.7, StartAcceptanceRatio = 0.2 }; /*{ * maxPopulation = 200, * maxGeneration = 30, * startAcceptanceRatio = 0.6, * gridSize = 20, * mutationChance = 0.2 * }*/ logger.Log(options.ToString()); var startTime = DateTimeOffset.UtcNow; try { GeneticTerrainGenerator generator = new GeneticTerrainGenerator(options, logger); logger.Log("Begin Simulation"); //THAR BE DRAGONZ Algorithm best = generator.RunSimulation(); logger.Log("End Simulation"); logger.Log(best.ToString()); /* * logger.Log("Rendering..."); * Source.Render( * Source.CreatePictureFromGraph(20, 20, best.RootNode) * , 20, 20); */ } finally { var elapsedTime = DateTimeOffset.UtcNow.Subtract(startTime); logger.Log($"{nameof(elapsedTime)}:{elapsedTime}"); logger.Print(); } Console.Read(); }
public void geneticTerrain_exception(int generation, int maxPopulation, double startAcceptanceRatio) { //arrange var sut = new GeneticTerrainGenerator(new GeneticParameters()); //act //assert sut.Invoking(a => a.NaturalSelection(list, generation)) .Should().Throw <DivideByZeroException>(); }
public void naturalselection_startup(int generation, int maxPopulation, double startAcceptanceRatio) { //arrange int incubatorSize = Convert.ToInt32(1.0 / generation * maxPopulation * startAcceptanceRatio); var sut = new GeneticTerrainGenerator(new GeneticParameters() { MaxPopulation = maxPopulation, StartAcceptanceRatio = startAcceptanceRatio }); //act sut.NaturalSelection(list, generation); //assert sut.Incubator.MaxCount.Should().Be(incubatorSize); }