Exemplo n.º 1
0
        private void Given()
        {
            var innovationHistory = new InnovationHistory();

            genome = new Genome(3, 1, innovationHistory);

            AddConnection(genome, 1, 4).InnovationNr.ShouldBe(1);
            AddConnection(genome, 2, 4).InnovationNr.ShouldBe(2);
            AddConnection(genome, 3, 4).InnovationNr.ShouldBe(3);
        }
Exemplo n.º 2
0
        public void The_innovation_number_should_be_correct()
        {
            var innovationHistory = new InnovationHistory();
            var genome            = new Genome(3, 1, innovationHistory);

            genome.Connections.Count().ShouldBe(0);

            AddConnection(genome, 1, 4).InnovationNr.ShouldBe(1);
            AddConnection(genome, 2, 4).InnovationNr.ShouldBe(2);
            AddConnection(genome, 3, 4).InnovationNr.ShouldBe(3);
        }
Exemplo n.º 3
0
        public void SetUp()
        {
            innovationHistory = new InnovationHistory();

            parent1 = new Genome(3, 1, innovationHistory);
            parent1.AddConnection(parent1.GetNode(1), parent1.GetNode(4)).InnovationNr.ShouldBe(1);
            parent1.AddConnection(parent1.GetNode(2), parent1.GetNode(4)).InnovationNr.ShouldBe(2);
            parent1.AddConnection(parent1.GetNode(3), parent1.GetNode(4)).InnovationNr.ShouldBe(3);
            parent1.MutateAddNode(parent1.GetNode(2), parent1.GetNode(4)); // InnovationNr 4 + 5

            parent2 = new Genome(3, 1, innovationHistory);
            parent2.AddConnection(parent2.GetNode(1), parent2.GetNode(4)).InnovationNr.ShouldBe(1);
            parent2.AddConnection(parent2.GetNode(2), parent2.GetNode(4)).InnovationNr.ShouldBe(2);
            parent2.AddConnection(parent2.GetNode(3), parent2.GetNode(4)).InnovationNr.ShouldBe(3);
            parent2.MutateAddNode(parent2.GetNode(2), parent2.GetNode(4)); // InnovationNr 4 + 5
            parent2.MutateAddNode(parent2.GetNode(5), parent2.GetNode(4)); // InnovationNr 6 + 7

            parent1.AddConnection(parent1.GetNode(1), parent1.GetNode(5)).InnovationNr.ShouldBe(8);
            parent2.AddConnection(parent2.GetNode(3), parent2.GetNode(5)).InnovationNr.ShouldBe(9);
            parent2.AddConnection(parent2.GetNode(1), parent2.GetNode(6)).InnovationNr.ShouldBe(10);
        }