def testAutoFeed(self): species1 = Species(5, 4, 5) species2 = Species(3, 3, 3) species3 = Species(3, 5, 4) species3a = Species(1, 5, 4) species4 = Species(4, 3, 4, [TraitCard("fat-tissue", 0)], 3) species5 = Species(4, 3 ,4, [TraitCard("fat-tissue", 0)], 1) carn1 = Species(3, 2, 4, [TraitCard("carnivore")]) carn2 = Species(4, 2, 5, [TraitCard("carnivore"), TraitCard("climbing")]) attackable = Species(3, 3, 5) speciesList1 = [species1, species2] speciesList2 = [species3, species3a] carnList1 = [carn1] carnList2 = [carn2, attackable] player1 = PlayerState(1, 0, speciesList1, []) player2 = PlayerState(2, 2, speciesList2, []) player3 = PlayerState(3, 3, [species4, species5], []) player4 = PlayerState(4, 4, [species3], []) player5 = PlayerState(5, 5, carnList1) player6 = PlayerState(6, 5, carnList2) dealer1 = Dealer([player1, player2], 4, []) dealer2 = Dealer([player2], 4, []) dealer3 = Dealer([player3], 3, []) dealer4 = Dealer([player4], 3, []) dealer5 = Dealer([player5, player6], 6, []) unchanged_player1 = copy.deepcopy(player1) unchanged_player2 = copy.deepcopy(player2) self.assertTrue(dealer1.auto_feed()) self.assertEquals(dealer1.fullPlayerIds, [1]) self.assertEquals(unchanged_player1, player1) self.assertEquals(unchanged_player2, player2) unchanged_species4 = copy.deepcopy(species4) self.assertFalse(dealer3.auto_feed()) self.assertEquals(species5.fatFood, 1) self.assertEquals(unchanged_species4, species4) self.assertFalse(dealer2.auto_feed()) self.assertEquals(species3.food, 3) self.assertEquals(species3a.food, 1) self.assertTrue(dealer4.auto_feed()) self.assertEquals(species3.food, 4) # no autofeeding on carnivores self.assertEquals(carn1.food, 3) unchanged_carn2 = copy.deepcopy(carn2) self.assertFalse(dealer5.auto_feed()) self.assertEquals(carn1.food, 3) self.assertEquals(unchanged_carn2, carn2) self.assertEquals(attackable.population, 5)