public void BestMaximumFitnessEntity_Serialization() { BestMaximumFitnessEntity metric = new BestMaximumFitnessEntity(); PrivateObject privObj = new PrivateObject(metric); Dictionary <int, GeneticEntity> bestEntities = (Dictionary <int, GeneticEntity>)privObj.GetField("bestEntities"); bestEntities.Add(10, new MockEntity()); BestMaximumFitnessEntity result = (BestMaximumFitnessEntity)SerializationHelper.TestSerialization(metric, new Type[] { typeof(MockEntity) }); PrivateObject resultPrivObj = new PrivateObject(result); Dictionary <int, GeneticEntity> resultBestEntities = (Dictionary <int, GeneticEntity>)resultPrivObj.GetField("bestEntities"); Assert.IsType <MockEntity>(resultBestEntities[10]); }
public void BestMaximumFitnessEntityGetResultValue_NullPopulation() { GeneticAlgorithm algorithm = new MockGeneticAlgorithm { SelectionOperator = new MockSelectionOperator(), GeneticEntitySeed = new MockEntity(), PopulationSeed = new MockPopulation(), FitnessEvaluator = new MockFitnessEvaluator(), }; algorithm.Metrics.Add(new BestMaximumFitnessEntity()); BestMaximumFitnessEntity target = new BestMaximumFitnessEntity(); target.Initialize(algorithm); Assert.Throws <ArgumentNullException>(() => target.GetResultValue(null)); }
public void BestMaximumFitnessEntity_GetResultValue() { GeneticAlgorithm algorithm = new MockGeneticAlgorithm { SelectionOperator = new MockSelectionOperator(), FitnessEvaluator = new MockFitnessEvaluator(), GeneticEntitySeed = new MockEntity(), PopulationSeed = new SimplePopulation(), }; algorithm.Metrics.Add(new BestMaximumFitnessEntity()); BestMaximumFitnessEntity target = new BestMaximumFitnessEntity(); target.Initialize(algorithm); SimplePopulation population1 = new SimplePopulation() { Index = 0 }; population1.Initialize(algorithm); VerifyGetResultValue(2, target, population1, algorithm, "20"); VerifyGetResultValue(1, target, population1, algorithm, "20"); VerifyGetResultValue(3, target, population1, algorithm, "30"); SimplePopulation population2 = new SimplePopulation() { Index = 1 }; population2.Initialize(algorithm); VerifyGetResultValue(7, target, population2, algorithm, "70"); VerifyGetResultValue(1, target, population1, algorithm, "30"); VerifyGetResultValue(4, target, population2, algorithm, "70"); }
private static void VerifyGetResultValue(int multiplier, BestMaximumFitnessEntity metric, SimplePopulation population, GeneticAlgorithm algorithm, string expectedReturnVal) { for (int i = 0; i < 5; i++) { MockEntity entity = new MockEntity(); entity.Initialize(algorithm); entity.ScaledFitnessValue = i * multiplier; entity.Identifier = entity.ScaledFitnessValue.ToString(); population.Entities.Add(entity); } for (int i = 10; i >= 5; i--) { MockEntity entity = new MockEntity(); entity.Initialize(algorithm); entity.ScaledFitnessValue = i * multiplier; entity.Identifier = entity.ScaledFitnessValue.ToString(); population.Entities.Add(entity); } object representation = metric.GetResultValue(population); Assert.Equal(expectedReturnVal, representation.ToString()); }