public void FlipBit_Index_ValueFlip() { var target = new BinaryChromosomeStub(2); target.ReplaceGenes(0, new Gene[] { new Gene(0), new Gene(1) }); Assert.AreEqual("01", target.ToString()); target.FlipGene(0); Assert.AreEqual("11", target.ToString()); target.FlipGene(1); Assert.AreEqual("10", target.ToString()); }
public void Mutate_NoArgs_BitMutated() { RandomizationProvider.Current = Substitute.For <IRandomization>(); RandomizationProvider.Current.GetInt(0, 3).Returns(1); var target = new FlipBitMutation(); var chromosome = new BinaryChromosomeStub(3); chromosome.ReplaceGenes(0, new Gene[] { new Gene(0), new Gene(0), new Gene(0) }); target.Mutate(chromosome, 1); Assert.AreEqual(0, chromosome.GetGene(0).Value); Assert.AreEqual(1, chromosome.GetGene(1).Value); Assert.AreEqual(0, chromosome.GetGene(2).Value); }
public void GenerateGene_Index_ZeroOrOne() { var chromosomes = new List <BinaryChromosomeBase> (); for (int i = 0; i < 100; i++) { var target = new BinaryChromosomeStub(2); var gene0 = target.GenerateGene(0); Assert.IsInstanceOf <int> (gene0.Value); var gene1 = target.GenerateGene(1); Assert.IsInstanceOf <int> (gene1.Value); target.ReplaceGenes(0, new Gene[] { gene0, gene1 }); chromosomes.Add(target); } Assert.IsTrue(chromosomes.Any(c => c.GetGenes().Any(g => ((int)g.Value) == 0))); }
public void Mutate_NoArgs_BitMutated() { RandomizationProvider.Current = MockRepository.GenerateMock <IRandomization>(); RandomizationProvider.Current.Expect(r => r.GetInt(0, 3)).Return(1); var target = new FlipBitMutation(); var chromosome = new BinaryChromosomeStub(3); chromosome.ReplaceGenes(0, new Gene[] { new Gene(0), new Gene(0), new Gene(0) }); target.Mutate(chromosome, 1); Assert.AreEqual(0, chromosome.GetGene(0).Value); Assert.AreEqual(1, chromosome.GetGene(1).Value); Assert.AreEqual(0, chromosome.GetGene(2).Value); RandomizationProvider.Current.VerifyAllExpectations(); }