Esempio n. 1
0
def test_board_constructor():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [3, 4],
        [4, 4],
    ]

    np.testing.assert_array_equal(board.snake, np.array([
        [3, 4],
        [4, 4],
    ]))
    np.testing.assert_array_equal(board.head, np.array([4, 4]))
    assert not board.done
    assert board.score == 2
Esempio n. 2
0
def test_move_right():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [[3, 4], [2, 4], [2, 5], [3, 5]]
    board.food = [1, 1]
    board.move(Direction.RIGHT)

    assert not board.done
    np.testing.assert_array_equal(board.snake, [
        [2, 4],
        [2, 5],
        [3, 5],
        [3, 6],
    ])
    assert board.score == 4
Esempio n. 3
0
def test_move_up():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [[3, 4], [4, 4], [4, 6], [4, 7]]
    board.food = [1, 1]
    board.move(Direction.UP)

    assert not board.done
    np.testing.assert_array_equal(board.snake, [
        [4, 4],
        [4, 6],
        [4, 7],
        [5, 7],
    ])
    assert board.score == 4
Esempio n. 4
0
def test_move_too_right():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [4, 4],
        [4, 5],
        [4, 6],
        [4, 7],
    ]
    board.food = [1, 1]
    assert board.score == 4
    assert not board.done

    board.move(Direction.RIGHT)

    assert board.done
    assert board.score == 4
Esempio n. 5
0
def test_move_too_up():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [4, 4],
        [3, 4],
        [2, 4],
        [1, 4],
        [0, 4],
    ]
    board.food = [1, 1]
    assert board.score == 5
    assert not board.done

    board.move(Direction.UP)

    assert board.done
    assert board.score == 5
Esempio n. 6
0
def test_move_too_down():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [3, 4],
        [4, 4],
        [5, 4],
        [6, 4],
        [7, 4],
    ]
    board.food = [1, 1]
    assert board.score == 5
    assert not board.done

    board.move(Direction.DOWN)

    assert board.done
    assert board.score == 5
Esempio n. 7
0
def test_snake_eat_itself():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [3, 4],
        [4, 4],
        [5, 4],
        [6, 4],
        [6, 5],
        [5, 5],
    ]
    board.food = [1, 1]
    assert board.score == 6

    board.move(Direction.LEFT)

    assert board.done
    assert board.score == 6
Esempio n. 8
0
def test_move_too_left():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [4, 5],
        [4, 4],
        [4, 3],
        [4, 2],
        [4, 1],
        [4, 0],
    ]
    board.food = [1, 1]
    assert board.score == 6
    assert not board.done

    board.move(Direction.LEFT)

    assert board.done
    assert board.score == 6
Esempio n. 9
0
def test_move_to_food():
    board = SnakeBoard(rows=8, columns=8)
    board.snake = [
        [3, 4],
        [4, 4],
        [5, 4],
        [5, 5],
    ]
    board.food = [5, 6]
    assert board.score == 4

    board.move(Direction.RIGHT)

    assert not board.done
    np.testing.assert_array_equal(board.snake, [
        [3, 4],
        [4, 4],
        [5, 4],
        [5, 5],
        [5, 6],
    ])
    assert board.score == 5
    assert np.any(np.not_equal(board.food, [5, 6]))
Esempio n. 10
0
def test_random_food_in_snake():
    with mock.patch("numpy.random.randint") as randint:
        randint.side_effect = [3, 4, 5, 6]
        board = SnakeBoard(rows=8, columns=8)
        np.testing.assert_array_equal(board.food, [5, 6])
        assert randint.call_count == 4