Пример #1
0
        public void BestMinimumFitness_Serialization()
        {
            BestMinimumFitness        metric        = new BestMinimumFitness();
            PrivateObject             privObj       = new PrivateObject(metric);
            Dictionary <int, double?> bestMinValues = (Dictionary <int, double?>)privObj.GetField("bestMinValues");

            bestMinValues.Add(10, 2.4);

            BestMinimumFitness result = (BestMinimumFitness)SerializationHelper.TestSerialization(metric, new Type[] { typeof(MockEntity) });

            PrivateObject             resultPrivObj       = new PrivateObject(result);
            Dictionary <int, double?> resultBestMinValues = (Dictionary <int, double?>)resultPrivObj.GetField("bestMinValues");

            Assert.Equal(2.4, resultBestMinValues[10]);
        }
Пример #2
0
        public void BestMinimumFitness_GetResultValue_AllNegative()
        {
            MockGeneticAlgorithm algorithm      = new MockGeneticAlgorithm();
            MinimumFitness       minimumFitness = new MinimumFitness();

            algorithm.Metrics.Add(minimumFitness);

            ObservableCollection <MetricResult> population1Results = minimumFitness.GetResults(0);

            population1Results.Add(new MetricResult(0, 0, (double)-5, minimumFitness));

            BestMinimumFitness target = new BestMinimumFitness();

            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, minimumFitness));

            result = target.GetResultValue(population);
            Assert.Equal((double)-6, result);

            ObservableCollection <MetricResult> population2Results = minimumFitness.GetResults(1);

            population2Results.Add(new MetricResult(0, 2, (double)-10, minimumFitness));

            MockPopulation population2 = new MockPopulation
            {
                Index = 1
            };

            result = target.GetResultValue(population2);
            Assert.Equal((double)-10, result);

            population2Results.Add(new MetricResult(1, 1, (double)-4, minimumFitness));

            result = target.GetResultValue(population2);
            Assert.Equal((double)-10, result);
        }
Пример #3
0
        public void BestMinimumFitness_GetResultValue_NullPopulation()
        {
            MockGeneticAlgorithm algorithm = new MockGeneticAlgorithm
            {
                SelectionOperator = new MockSelectionOperator(),
                GeneticEntitySeed = new MockEntity(),
                PopulationSeed    = new MockPopulation(),
                FitnessEvaluator  = new MockFitnessEvaluator(),
            };

            algorithm.Metrics.Add(new BestMinimumFitness());

            BestMinimumFitness target = new BestMinimumFitness();

            target.Initialize(algorithm);

            Assert.Throws <ArgumentNullException>(() => target.GetResultValue(null));
        }