Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }