123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- from conway import GameOfLife
-
-
- def test_getting_neighbors():
- grid = [
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
-
- assert game.get_neighbors(0, 1) == [0, 0, 0, 0, 1]
- assert game.get_neighbors(1, 1) == [0, 0, 0, 0, 1, 0, 0, 1]
- assert game.get_neighbors(2, 1) == [0, 0, 1, 0, 1, 0, 0, 1]
-
-
- def test_dead_cell_with_three_living_neighbors_comes_back_to_life():
- grid = [
- [1, 1, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
- game.iterate()
-
- assert game.grid[1][1] == 1
-
-
- def test_dead_cells_with_three_living_neighbors_come_back_to_life():
- grid = [
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
- game.iterate()
-
- assert game.grid[1][2] == 1
- assert game.grid[3][2] == 1
-
-
- def test_living_cell_with_under_two_living_neighbors_dies():
- grid = [
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
- game.iterate()
-
- assert game.grid[1][2] == 0
- assert game.grid[2][2] == 0
-
-
- def test_living_cell_with_two_or_three_neighbors_survives():
- grid = [
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
- game.iterate()
-
- assert game.grid[2][2] == 1
-
-
- def test_blinker():
- grid = [
- [0, 0, 0, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 1, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
-
- game.iterate()
-
- assert game.grid == [
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- ]
-
- game.iterate()
-
- assert game.grid == grid
-
-
- def test_beacon():
- grid = [
- [0, 0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0, 0],
- [0, 1, 0, 0, 0, 0],
- [0, 0, 0, 0, 1, 0],
- [0, 0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0, 0],
- ]
-
- game = GameOfLife(grid=grid)
-
- game.iterate()
-
- assert game.grid == [
- [0, 0, 0, 0, 0, 0],
- [0, 1, 1, 0, 0, 0],
- [0, 1, 1, 0, 0, 0],
- [0, 0, 0, 1, 1, 0],
- [0, 0, 0, 1, 1, 0],
- [0, 0, 0, 0, 0, 0],
- ]
-
- game.iterate()
-
- assert game.grid == grid
-
-
- def test_creating_grid_from_string():
- s = '''
- 00000
- 00000
- 01110
- 00000
- 00000
- '''
-
- game = GameOfLife.from_string(s)
-
- assert game.grid == [
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- [0, 1, 1, 1, 0],
- [0, 0, 0, 0, 0],
- [0, 0, 0, 0, 0],
- ]
|