Beispiel #1
0
    public void GetBestGenomeForSpecies_Test()
    {
        //Create agents
        AgentObject agent1 = new CustomAgent(populationManager, new Genome(), 100);
        AgentObject agent2 = new CustomAgent(populationManager, new Genome(), 200);
        AgentObject agent3 = new CustomAgent(populationManager, new Genome(), 300);

        //Create two species
        Species species1 = new Species(0, agent1);

        species1.Members.Add(agent1);

        Species species2 = new Species(0, agent3);

        species2.Members.Add(agent3);

        Species species3 = new Species(0, agent2);

        for (int i = 0; i < 4; i++)
        {
            species1.Members.Add(new CustomAgent(populationManager, new Genome(), 50));
            species2.Members.Add(new CustomAgent(populationManager, new Genome(), 50));
            species3.Members.Add(new CustomAgent(populationManager, new Genome(), 50));
        }

        List <Species> species = new List <Species>()
        {
            species1, species2, species3
        };

        List <Genome> bestGenomes = populationManager.GetBestGenomeForSpecies(species);

        Assert.AreEqual(2, bestGenomes.Count);
        Assert.AreEqual(agent1.Genome, bestGenomes[0]);
        Assert.AreEqual(agent3.Genome, bestGenomes[1]);
    }