Beispiel #1
0
    public void PlaceAgentInSpecies_Test()
    {
        AgentObject agent1 = new CustomAgent(populationManager, parent1Genome, 1);
        AgentObject agent2 = new CustomAgent(populationManager, parent1Genome, 2);

        AgentObject agent3 = new CustomAgent(populationManager, parent2Genome, 3);
        AgentObject agent4 = new CustomAgent(populationManager, parent2Genome, 4);

        AgentObject agent5 = new CustomAgent(populationManager, parent3GenomeSimple, 5);

        Species species1 = new Species(0, agent1);
        Species species2 = new Species(0, agent5);

        List <AgentObject> agents = new List <AgentObject> {
            agent1, agent2, agent3, agent4
        };
        List <Species> species = new List <Species> {
            species1, species2
        };

        //Species one should be updated,
        //Species two should be deleted
        //For agent 3 and 4 is a new species required
        populationManager.PlaceAgentInSpecies(agents, species);

        Assert.AreEqual(2, species.Count);
        Assert.AreEqual(species1, species[0]);
        Assert.AreNotEqual(species2, species[1]);

        //Check agents
        Assert.AreEqual(agent1, species[0].RepresentiveAgent);
        Assert.AreEqual(agent3, species[1].RepresentiveAgent);

        Assert.AreEqual(2, species[0].Members.Count);
        Assert.AreEqual(2, species[1].Members.Count);

        Assert.AreEqual(agent1, species[0].Members[0]);
        Assert.AreEqual(agent2, species[0].Members[1]);

        Assert.AreEqual(agent3, species[1].Members[0]);
        Assert.AreEqual(agent4, species[1].Members[1]);
    }