public IReinsertion Uniform() { var target = new UniformReinsertion(); target.SelectChromosomes( new Population(5, 5, new TspChromosome(_numberOfCities)), new List <IChromosome> { new TspChromosome(_numberOfCities) }, _parents); return(target); }
public void SelectChromosomes_OffspringSizeEqualsZero_Exception() { var target = new UniformReinsertion(); var population = new Population(6, 8, MockRepository.GenerateStub <ChromosomeBase> (2)); var offspring = new List <IChromosome> (); var parents = new List <IChromosome> () { MockRepository.GenerateStub <ChromosomeBase> (5), MockRepository.GenerateStub <ChromosomeBase> (6), MockRepository.GenerateStub <ChromosomeBase> (7), MockRepository.GenerateStub <ChromosomeBase> (8) }; ExceptionAssert.IsThrowing(new ReinsertionException(target, "The minimum size of the offspring is 1."), () => { target.SelectChromosomes(population, offspring, parents); }); }
public void SelectChromosomes_OffspringSizeEqualsZero_Exception() { var target = new UniformReinsertion(); var population = new Population(6, 8, Substitute.For <ChromosomeBase>(2)); var offspring = new List <IChromosome>(); var parents = new List <IChromosome>() { Substitute.For <ChromosomeBase> (5), Substitute.For <ChromosomeBase> (6), Substitute.For <ChromosomeBase> (7), Substitute.For <ChromosomeBase> (8) }; Assert.Catch <ReinsertionException>(() => { target.SelectChromosomes(population, offspring, parents); }, "The minimum size of the offspring is 1."); }
public void SelectChromosomes_offspringSizeLowerThanMinSize_Selectoffspring() { var target = new UniformReinsertion(); var population = new Population(6, 8, MockRepository.GenerateStub <ChromosomeBase> (2)); var offspring = new List <IChromosome> () { MockRepository.GenerateStub <ChromosomeBase> (2), MockRepository.GenerateStub <ChromosomeBase> (2), MockRepository.GenerateStub <ChromosomeBase> (3), MockRepository.GenerateStub <ChromosomeBase> (4) }; var parents = new List <IChromosome> () { MockRepository.GenerateStub <ChromosomeBase> (5), MockRepository.GenerateStub <ChromosomeBase> (6), MockRepository.GenerateStub <ChromosomeBase> (7), MockRepository.GenerateStub <ChromosomeBase> (8) }; var rnd = MockRepository.GenerateMock <IRandomization> (); rnd.Expect(r => r.GetInt(0, 4)).Return(1); rnd.Expect(r => r.GetInt(0, 5)).Return(3); RandomizationProvider.Current = rnd; var selected = target.SelectChromosomes(population, offspring, parents); Assert.AreEqual(6, selected.Count); Assert.AreEqual(2, selected [0].Length); Assert.AreEqual(2, selected [1].Length); Assert.AreEqual(3, selected [2].Length); Assert.AreEqual(4, selected [3].Length); Assert.AreEqual(2, selected [4].Length); Assert.AreEqual(4, selected [5].Length); }
public void SelectChromosomes_offspringSizeLowerThanMinSize_Selectoffspring() { var target = new UniformReinsertion(); var population = new Population(6, 8, Substitute.For <ChromosomeBase>(2)); var offspring = new List <IChromosome>() { Substitute.For <ChromosomeBase> (2), Substitute.For <ChromosomeBase> (2), Substitute.For <ChromosomeBase> (3), Substitute.For <ChromosomeBase> (4) }; var parents = new List <IChromosome>() { Substitute.For <ChromosomeBase> (5), Substitute.For <ChromosomeBase> (6), Substitute.For <ChromosomeBase> (7), Substitute.For <ChromosomeBase> (8) }; var rnd = Substitute.For <IRandomization>(); rnd.GetInt(0, 4).Returns(1); rnd.GetInt(0, 5).Returns(3); RandomizationProvider.Current = rnd; var selected = target.SelectChromosomes(population, offspring, parents); Assert.AreEqual(6, selected.Count); Assert.AreEqual(2, selected[0].Length); Assert.AreEqual(2, selected[1].Length); Assert.AreEqual(3, selected[2].Length); Assert.AreEqual(4, selected[3].Length); Assert.AreEqual(2, selected[4].Length); Assert.AreEqual(4, selected[5].Length); }