public void MaximumFitness_GetResultValue_WithScaling() { MaximumFitness metric = new MaximumFitness(); metric.Initialize(new MockGeneticAlgorithm { FitnessScalingStrategy = new MockFitnessScalingStrategy() }); MockPopulation population = new MockPopulation(); population.Entities.Add(new MockEntity { ScaledFitnessValue = 10 }); population.Entities.Add(new MockEntity { ScaledFitnessValue = 11 }); population.Entities.Add(new MockEntity { ScaledFitnessValue = 15 }); population.Entities.Add(new MockEntity { ScaledFitnessValue = 13 }); object result = metric.GetResultValue(population); Assert.Equal((double)15, result); }
public void MaximumFitness_GetResultValue_NoScaling() { MaximumFitness metric = new MaximumFitness(); metric.Initialize(new MockGeneticAlgorithm()); MockPopulation population = new MockPopulation(); PrivateObject populationAccessor = new PrivateObject(population, new PrivateType(typeof(Population))); populationAccessor.SetField("rawMax", (double)12); object result = metric.GetResultValue(population); Assert.Equal((double)12, result); }
public void MaximumFitness_GetResultValue_NullPopulation() { MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm { SelectionOperator = new MockSelectionOperator(), GeneticEntitySeed = new MockEntity(), PopulationSeed = new SimplePopulation(), FitnessEvaluator = new MockFitnessEvaluator(), }; algorithm.Metrics.Add(new MaximumFitness()); MaximumFitness target = new MaximumFitness(); target.Initialize(algorithm); Assert.Throws <ArgumentNullException>(() => target.GetResultValue(null)); }
public void BestMaximumFitness_GetResultValue_AllNegative() { MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm(); MaximumFitness maximumFitness = new MaximumFitness(); algorithm.Metrics.Add(maximumFitness); ObservableCollection <MetricResult> population1Results = maximumFitness.GetResults(0); population1Results.Add(new MetricResult(0, 0, (double)-5, maximumFitness)); BestMaximumFitness target = new BestMaximumFitness(); target.Initialize(algorithm); MockPopulation population = new MockPopulation { Index = 0 }; object result = target.GetResultValue(population); Assert.Equal((double)-5, result); population1Results.Add(new MetricResult(1, 0, (double)-6, maximumFitness)); result = target.GetResultValue(population); Assert.Equal((double)-5, result); ObservableCollection <MetricResult> population2Results = maximumFitness.GetResults(1); population2Results.Add(new MetricResult(0, 2, (double)-10, maximumFitness)); MockPopulation population2 = new MockPopulation { Index = 1 }; result = target.GetResultValue(population2); Assert.Equal((double)-10, result); population2Results.Add(new MetricResult(1, 1, (double)-4, maximumFitness)); result = target.GetResultValue(population2); Assert.Equal((double)-4, result); }