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]); }