public void BitFlipMutationTest1()
        {
            Organism organism = new Organism();
            organism.Chromosomes.Add(new Chromosome(1, "0"));
            IRandom rand = new Deterministic(0);
            BitFlipMutation mutator = new BitFlipMutation(rand);
            mutator.Mutate(organism);

            Assert.AreEqual("1", organism.Chromosomes[0].ToString());
        }
        public void PartiallyMatchedCrossoverTest2()
        {
            Organism parent1 = new Organism();
            Organism parent2 = new Organism();
            parent1.Chromosomes.Add(new Chromosome(3, "001110"));
            parent2.Chromosomes.Add(new Chromosome(3, "110001"));

            IRandom rand = new Deterministic(1, 0);
            PartiallyMatchedCrossover linker = new PartiallyMatchedCrossover(rand, 1);
            var children = linker.CrossLink(parent1, parent2);

            Assert.AreEqual("110001", children.Item1.ToString());
            Assert.AreEqual("001110", children.Item2.ToString());
        }
        public void OnePointCrossLinkTest2()
        {
            Organism parent1 = new Organism();
            Organism parent2 = new Organism();
            parent1.Chromosomes.Add(new Chromosome(1, "11"));
            parent2.Chromosomes.Add(new Chromosome(1, "00"));

            IRandom rand = new Deterministic(1, 1);
            OnePointCrossover crossLinker = new OnePointCrossover(rand, 0);
            var answer = crossLinker.CrossLink(parent1, parent2);

            Assert.AreEqual("11", answer.Item1.Chromosomes[0].ToString());
            Assert.AreEqual("00", answer.Item2.Chromosomes[0].ToString());
        }
        public void BitSwapMutationTest3()
        {
            Organism organism = new Organism();
            organism.Chromosomes.Add(new Chromosome(1, "01010"));

            IRandom rand = new Deterministic(1);
            BitSwapMutation mutator = new BitSwapMutation(rand);
            mutator.Mutate(organism);

            string answer = organism.Chromosomes[0].ToString();

            Assert.AreEqual("00110", answer);
        }
        public void InsertionMutationTest2()
        {
            Organism organism = new Organism();
            organism.Chromosomes.Add(new Chromosome(1, "10"));

            IRandom rand = new Deterministic(0, 0);
            InsertionMutation mutator = new InsertionMutation(rand);
            mutator.Mutate(organism);

            string answer = organism.Chromosomes[0].ToString();
            Assert.AreEqual("010", answer);
        }
        public void GeneSwapTest3()
        {
            Organism organism = new Organism();
            organism.Chromosomes.Add(new Chromosome(1, "0011"));

            IRandom rand = new Deterministic(0);
            GeneSwapMutation mutator = new GeneSwapMutation(rand, 2);
            mutator.Mutate(organism);

            Assert.AreEqual("1100", organism.Chromosomes[0].ToString());
        }