public async Task FitnessTargetTerminator_IsComplete_RawFitness() { double fitnessTarget = 15; GeneticAlgorithm algorithm = GetAlgorithm(fitnessTarget, FitnessType.Raw); await algorithm.InitializeAsync(); FitnessTargetTerminator terminator = (FitnessTargetTerminator)algorithm.Terminator; terminator.Initialize(algorithm); // Check with no populations Assert.False(terminator.IsComplete(), "No genetic entities have the fitness target."); MockEntity entity = new MockEntity(); entity.Initialize(algorithm); SimplePopulation population = new SimplePopulation(); population.Initialize(algorithm); population.Entities.Add(entity); algorithm.Environment.Populations.Add(population); // Check with a population with one entity Assert.False(terminator.IsComplete(), "No genetic entities have the fitness target."); PrivateObject accessor = new PrivateObject(entity, new PrivateType(typeof(GeneticEntity))); accessor.SetField("rawFitnessValue", 15); Assert.True(terminator.IsComplete(), "A entity does have the fitness target."); }
public async Task FitnessTargetTerminator_IsComplete_ScaledFitness() { double fitnessTarget = 15; GeneticAlgorithm algorithm = GetAlgorithm(fitnessTarget, FitnessType.Scaled); await algorithm.InitializeAsync(); FitnessTargetTerminator terminator = (FitnessTargetTerminator)algorithm.Terminator; terminator.Initialize(algorithm); // Check with no populations Assert.False(terminator.IsComplete(), "No genetic entities have the fitness target."); MockEntity entity = new MockEntity(); entity.Initialize(algorithm); SimplePopulation population = new SimplePopulation(); population.Initialize(algorithm); population.Entities.Add(entity); algorithm.Environment.Populations.Add(population); // Check with a population with one entity Assert.False(terminator.IsComplete(), "No genetic entities have the fitness target."); entity.ScaledFitnessValue = 15; Assert.True(terminator.IsComplete(), "A entity does have the fitness target."); }