def test_generate_next_generation(): next_matrix = generate_next_generation(input_matrix) for row in range(len(next_matrix)): for column in range(len(next_matrix[0])): cell = input_matrix[row][column] assert next_matrix[row][column] == next_generation_cell(cell, input_matrix, row, column)
def test_next_generation_cell(): result = 0 row = 0 column = 0 matrix = input_matrix cell = input_matrix[row][column] counter = 0 counter += matrix[row - 1][column - 1] counter += matrix[row - 1][column] counter += matrix[row - 1][(column + 1) % len(matrix[0])] counter += matrix[row][column - 1] counter += matrix[row][(column + 1) % len(matrix[0])] counter += matrix[(row + 1) % len(matrix)][column - 1] counter += matrix[(row + 1) % len(matrix)][column] counter += matrix[(row + 1) % len(matrix)][(column + 1) % len(matrix[0])] if (cell == 0 and counter == 3): result = 1 elif (cell == 1 and (counter == 2 or counter == 3)): result = 1 else: result = 0 assert result == next_generation_cell(0, input_matrix, 0, 0)
def test_next_generation_cell_remains_one_wrong(): assert 0 != next_generation_cell(input_matrix[2][2] , input_matrix, 2, 2)
def test_next_generation_cell_remains_zero_wrong(): assert 1 != next_generation_cell(input_matrix[0][0] , input_matrix, 0, 0)
def test_next_generation_cell_becomes_zero_wrong(): assert 1 != next_generation_cell(input_matrix[1][2] , input_matrix, 1, 2)
def test_next_generation_cell_becomes_one_wrong(): assert 0 != next_generation_cell(input_matrix[2][1] , input_matrix, 2, 1)