public void CreateReinsertionByName_ValidNameButInvalidConstructorArgs_Exception() { Assert.Catch <ArgumentException>(() => { ReinsertionService.CreateReinsertionByName("Elitist", 1, 2, 3); }, "A IReinsertion's implementation with name 'Elitist' was found, but seems the constructor args were invalid."); }
public void Start_UsingAllConfigurationCombinationsAvailable_AllRun() { var selections = SelectionService.GetSelectionNames(); var crossovers = CrossoverService.GetCrossoverNames(); var mutations = MutationService.GetMutationNames().Where(m => !m.Equals("Flip Bit")); var reinsertions = ReinsertionService.GetReinsertionNames(); var chromosome = new OrderedChromosomeStub(); foreach (var s in selections) { foreach (var c in crossovers) { foreach (var m in mutations) { foreach (var r in reinsertions) { var selection = SelectionService.CreateSelectionByName(s); var crossover = CrossoverService.CreateCrossoverByName(c); var mutation = MutationService.CreateMutationByName(m); var reinsertion = ReinsertionService.CreateReinsertionByName(r); if (crossover.IsOrdered ^ mutation.IsOrdered) { continue; } if (crossover.ParentsNumber > crossover.ChildrenNumber && !reinsertion.CanExpand) { continue; } if (mutation is UniformMutation) { mutation = new UniformMutation(1); } var target = new GeneticAlgorithm( new Population(50, 50, chromosome.Clone()) { GenerationStrategy = new TrackingGenerationStrategy() }, new FitnessStub() { SupportsParallel = false }, selection, crossover, mutation); target.Reinsertion = reinsertion; target.Termination = new GenerationNumberTermination(25); target.CrossoverProbability = reinsertion.CanExpand ? 0.75f : 1f; target.Start(); Assert.AreEqual(25, target.Population.Generations.Count); } } } } }
public void GetReinsertionTypeByName_InvalidName_Exception() { Assert.Catch <ArgumentException>(() => { ReinsertionService.GetReinsertionTypeByName("Test"); }, "There is no IReinsertion implementation with name 'Test'."); }
public void GetReinsertionTypeByName_InvalidName_Exception() { ExceptionAssert.IsThrowing(new ArgumentException("There is no IReinsertion implementation with name 'Test'.", "name"), () => { ReinsertionService.GetReinsertionTypeByName("Test"); }); }
public void CreateReinsertionByName_ValidNameButInvalidConstructorArgs_Exception() { ExceptionAssert.IsThrowing(new ArgumentException("A IReinsertion's implementation with name 'Elitist' was found, but seems the constructor args were invalid.", "constructorArgs"), () => { ReinsertionService.CreateReinsertionByName("Elitist", 1, 2, 3); }); }
public void GetReinsertionNames_NoArgs_AllAvailableReinsertionsNames() { var actual = ReinsertionService.GetReinsertionNames(); Assert.AreEqual(4, actual.Count); Assert.AreEqual("Elitist", actual[0]); Assert.AreEqual("Fitness Based", actual[1]); Assert.AreEqual("Pure", actual[2]); Assert.AreEqual("Uniform", actual[3]); }
public void GetReinsertionTypes_NoArgs_AllAvailableReinsertions() { var actual = ReinsertionService.GetReinsertionTypes(); Assert.AreEqual(4, actual.Count); Assert.AreEqual(typeof(ElitistReinsertion), actual[0]); Assert.AreEqual(typeof(FitnessBasedReinsertion), actual[1]); Assert.AreEqual(typeof(PureReinsertion), actual[2]); Assert.AreEqual(typeof(UniformReinsertion), actual[3]); }
public void GetReinsertionTypeByName_ValidName_ReinsertionTpe() { var actual = ReinsertionService.GetReinsertionTypeByName("Elitist"); Assert.AreEqual(typeof(ElitistReinsertion), actual); actual = ReinsertionService.GetReinsertionTypeByName("Fitness Based"); Assert.AreEqual(typeof(FitnessBasedReinsertion), actual); actual = ReinsertionService.GetReinsertionTypeByName("Pure"); Assert.AreEqual(typeof(PureReinsertion), actual); actual = ReinsertionService.GetReinsertionTypeByName("Uniform"); Assert.AreEqual(typeof(UniformReinsertion), actual); }
public void CreateReinsertionByName_ValidName_ReinsertionCreated() { IReinsertion actual = ReinsertionService.CreateReinsertionByName("Elitist") as ElitistReinsertion; Assert.IsNotNull(actual); actual = ReinsertionService.CreateReinsertionByName("Fitness Based") as FitnessBasedReinsertion; Assert.IsNotNull(actual); actual = ReinsertionService.CreateReinsertionByName("Pure") as PureReinsertion; Assert.IsNotNull(actual); actual = ReinsertionService.CreateReinsertionByName("Uniform") as UniformReinsertion; Assert.IsNotNull(actual); }