Ejemplo n.º 1
0
class TestUnderPopulation(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_live_cell_with_no_neighbour_dies(self):
        self.game.add_living_cell(9, 9)
        self.assertEqual(self.game.is_alive(9, 9), True)
        self.assertEqual(self.game.neighbours_count(9, 9), 0)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(9, 9), False)
    def test_that_live_cell_with_one_neighbour_dies(self):
        self.assertEqual(self.game.is_alive(4, 4), True)
        self.assertEqual(self.game.neighbours_count(4, 4), 1)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 4), False)
Ejemplo n.º 2
0
class TestReproduction(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_dead_cell_3_neighbours_becomes_alive(self):
        self.assertEqual(self.game.is_alive(4, 2), False)
        self.assertEqual(self.game.neighbours_count(4, 2), 3)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 2), True)
    def test_that_dead_cell_without_3_neighbours_stays_dead(self):
        self.game.add_living_cell(4, 3)
        self.assertEqual(self.game.is_alive(4, 2), False)
        self.assertEqual(self.game.neighbours_count(4, 2), 4)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 2), False)
Ejemplo n.º 3
0
class TestLiveCellThatLivesForNextGeneration(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_live_cell_with_two_neighbour_dosent_die(self):
        self.game.add_living_cell(4, 5)
        self.assertEqual(self.game.neighbours_count(4, 4), 2)
        self.assertEqual(self.game.is_alive(4, 4), True)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 4), True)
    def test_that_live_cell_with_3_neighbour_dosent_die(self):
        self.game.add_living_cell(4, 5)
        self.game.add_living_cell(4, 3)
        self.assertEqual(self.game.neighbours_count(4, 4), 3)
        self.assertEqual(self.game.is_alive(4, 4), True)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 4), True)
Ejemplo n.º 4
0
class TestReproduction(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_dead_cell_3_neighbours_becomes_alive(self):
        self.assertEqual(self.game.is_alive(4, 2), False)
        self.assertEqual(self.game.neighbours_count(4, 2), 3)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 2), True)

    def test_that_dead_cell_without_3_neighbours_stays_dead(self):
        self.game.add_living_cell(4, 3)
        self.assertEqual(self.game.is_alive(4, 2), False)
        self.assertEqual(self.game.neighbours_count(4, 2), 4)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 2), False)
Ejemplo n.º 5
0
class TestLiveCellThatLivesForNextGeneration(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_live_cell_with_two_neighbour_dosent_die(self):
        self.game.add_living_cell(4, 5)
        self.assertEqual(self.game.neighbours_count(4, 4), 2)
        self.assertEqual(self.game.is_alive(4, 4), True)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 4), True)

    def test_that_live_cell_with_3_neighbour_dosent_die(self):
        self.game.add_living_cell(4, 5)
        self.game.add_living_cell(4, 3)
        self.assertEqual(self.game.neighbours_count(4, 4), 3)
        self.assertEqual(self.game.is_alive(4, 4), True)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 4), True)
Ejemplo n.º 6
0
class TestUnderPopulation(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_live_cell_with_no_neighbour_dies(self):
        self.game.add_living_cell(9, 9)
        self.assertEqual(self.game.is_alive(9, 9), True)
        self.assertEqual(self.game.neighbours_count(9, 9), 0)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(9, 9), False)

    def test_that_live_cell_with_one_neighbour_dies(self):
        self.assertEqual(self.game.is_alive(4, 4), True)
        self.assertEqual(self.game.neighbours_count(4, 4), 1)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(4, 4), False)
Ejemplo n.º 7
0
class TestOverCrowding(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_live_cell_more_then_3_neighbours_dies(self):
        self.game.add_living_cell(2, 2)
        self.assertEqual(self.game.is_alive(2, 2), True)
        self.assertEqual(self.game.neighbours_count(2, 2), 8)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(2, 2), False)
Ejemplo n.º 8
0
class TestOverCrowding(unittest.TestCase):
    def setUp(self):
        self.game = GameOfLife(10)
        self.game.add_living_cell(1, 1)
        self.game.add_living_cell(2, 1)
        self.game.add_living_cell(3, 1)

        self.game.add_living_cell(1, 2)
        self.game.add_living_cell(3, 2)

        self.game.add_living_cell(1, 3)
        self.game.add_living_cell(2, 3)
        self.game.add_living_cell(3, 3)

        self.game.add_living_cell(4, 4)

    def test_that_live_cell_more_then_3_neighbours_dies(self):
        self.game.add_living_cell(2, 2)
        self.assertEqual(self.game.is_alive(2, 2), True)
        self.assertEqual(self.game.neighbours_count(2, 2), 8)
        self.game.evolve()
        self.assertEqual(self.game.is_alive(2, 2), False)
Ejemplo n.º 9
0
class TestGameOfLife(TestCase):
	def setUp(self):
		self.game = GameOfLife()

	def test_if_any_cell_with_less_than_two_neighbours_dies(self):
		self.evolve([(0,0)])
		self.assert_dead((0,0))
		self.evolve([(0,0),(1,0)])
		self.assert_dead((1,0))


	def test_if_any_cell_with_two_or_three_neighbours_survives(self):
		self.evolve([      (1,1),(2,1),
			         (0,2),(1,2)])
		self.assert_alive((0,2))
		self.assert_alive((1,2))

	def test_if_any_cell_with_more_than_three_neighbours_dies(self):
		self.evolve([(0,1),(1,1),(2,1),
			         (0,2),(1,2),(2,2)])
		self.assert_dead((1,1))
		self.assert_dead((1,2))

	def test_if_any_dead_cell_with_exactly_three_neighbours_becomes_alive(self):
		self.evolve([      (1,1),(2,1),
			         (0,2),(1,2)      ])
		self.assert_alive((0,1))
		self.assert_alive((2,2))

	def evolve(self,cells):
		self.next_generation = self.game.evolve(cells)

	def assert_dead(self,cell):
		self.assertFalse(cell in self.next_generation)

	def assert_alive(self,cell):
		self.assertTrue(cell in self.next_generation)