Beispiel #1
0
    def test_count_living(self):
        rows = 2
        columns = 4
        g = Generation(rows, columns)
        g.assign_neighbors()
        g._cells[0][0].live()
        self.assertEqual(g.count_living(), 1)

        g._cells[1][3].live()
        self.assertEqual(g.count_living(), 2)
Beispiel #2
0
    def test_next_generation_block(self):
        l = Cell.liveChar
        d = Cell.deadChar
        n = '\n'
        state1 = n + l + l + \
                 n + l + l

        g = Generation(2, 2)
        g.assign_neighbors()
        g._cells[0][0].live()
        g._cells[0][1].live()
        g._cells[1][0].live()
        g._cells[1][1].live()

        self.assertEqual(state1, str(g))
        g = g.next_generation()
        self.assertEqual(state1, str(g))
        g = g.next_generation()
        self.assertEqual(state1, str(g))
Beispiel #3
0
    def test_living_neighbors(self):
        g = Generation(5, 5)
        g.assign_neighbors()

        cells = [[0, 1, 0, 0, 1], [0, 0, 0, 1, 0], [0, 1, 1, 1, 1],
                 [0, 0, 1, 1, 1], [1, 1, 1, 1, 1]]

        for row in range(5):
            for column in range(5):
                if cells[row][column] == 1:
                    g._cells[row][column].live()

        correctCount = [[1, 0, 2, 2, 1], [2, 3, 5, 4, 4], [1, 2, 5, 6, 4],
                        [3, 6, 7, 8, 5], [1, 3, 4, 5, 3]]

        for cell in g.cells():
            self.assertEqual(
                cell.living_neighbors(), correctCount[cell.row][cell.column],
                f'cell[{row}][{column}] != {correctCount[row][column]}')
Beispiel #4
0
 def test_better_populate(self):
     rows = 3
     columns = 5
     g = Generation(rows, columns)
     g.assign_neighbors()
     #
     # Why would you populate with zero% alive?
     #
     g.populate_cells(0)
     self.assertEqual(g.count_living(), 0)
     #
     # 50% alive
     #
     g.populate_cells(50)
     self.assertEqual(g.count_living(), int(rows * columns / 2))
     #
     # 100% alive
     #
     g.populate_cells(100)
     self.assertEqual(g.count_living(), rows * columns)
Beispiel #5
0
 def test_create(self):
     rows = 2
     columns = 4
     g = Generation(rows, columns)
     g.assign_neighbors()
     #
     # Is the world the correct size?
     #
     self.assertEqual(g.rows, rows)
     self.assertEqual(len(g._cells), rows)
     self.assertEqual(g.columns, columns)
     self.assertEqual(len(g._cells[0]), columns)
     #
     # Are all the cells correct?
     #
     for row in range(rows):
         for column in range(columns):
             self.assertFalse(g._cells[row][column].alive)
             self.assertEqual(g._cells[row][column].row, row)
             self.assertEqual(g._cells[row][column].column, column)
Beispiel #6
0
 def test_str(self):
     g = Generation(2, 4)
     g.assign_neighbors()
     l = Cell.liveChar
     d = Cell.deadChar
     #
     # all dead?
     #
     worldString = '\n' + d + d + d + d + '\n' + d + d + d + d
     self.assertEqual(str(g), worldString)
     #
     # some alive?
     #
     g._cells[0][0].live()
     g._cells[1][3].live()
     worldString = '\n' + l + d + d + d + '\n' + d + d + d + l
     self.assertEqual(str(g), worldString)
     #
     # all alive?
     #
     g.populate_cells(100)
     worldString = '\n' + l + l + l + l + '\n' + l + l + l + l
     self.assertEqual(str(g), worldString)
Beispiel #7
0
    def test_next_generation_blinker(self):
        l = Cell.liveChar
        d = Cell.deadChar
        n = '\n'
        state1 = n + d + l + d + \
                 n + d + l + d + \
                 n + d + l + d

        state2 = n + d + d + d + \
                 n + l + l + l + \
                 n + d + d + d

        g = Generation(3, 3)
        g.assign_neighbors()
        g._cells[0][1].live()
        g._cells[1][1].live()
        g._cells[2][1].live()

        self.assertEqual(state1, str(g))
        g = g.next_generation()
        self.assertEqual(state2, str(g))
        g = g.next_generation()
        self.assertEqual(state1, str(g))
Beispiel #8
0
 def test_len(self):
     rows = 2
     columns = 4
     g = Generation(rows, columns)
     g.assign_neighbors()
     self.assertEqual(len(g), rows * columns)