public void FitnessStandardDeviation_GetResultValue_WithScaling() { FitnessStandardDeviation metric = new FitnessStandardDeviation(); MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm { FitnessScalingStrategy = new MockFitnessScalingStrategy() }; MeanFitness meanFitness = new MeanFitness(); meanFitness.GetResults(0).Add(new MetricResult(0, 0, (double)12, meanFitness)); algorithm.Metrics.Add(meanFitness); metric.Initialize(algorithm); 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 }); object result = metric.GetResultValue(population); Assert.Equal(2.16025, Math.Round((double)result, 5)); }
public void FitnessStandardDeviation_GetResultValue_NoScaling() { FitnessStandardDeviation metric = new FitnessStandardDeviation(); metric.Initialize(new MockGeneticAlgorithm()); MockPopulation population = new MockPopulation(); PrivateObject populationAccessor = new PrivateObject(population, new PrivateType(typeof(Population))); populationAccessor.SetField("rawStandardDeviation", (double)18); object result = metric.GetResultValue(population); Assert.Equal((double)18, result); }
public void FitnessStandardDeviation_GetResultValue_NullPopulation() { FitnessStandardDeviation metric = new FitnessStandardDeviation(); Assert.Throws <ArgumentNullException>(() => metric.GetResultValue(null)); }