test_task11.py 3.89 KB
import pytest
from helpers.test_helpers import *

@pytest.mark.parametrize('board_ships, board_hits, player, size_board, expected', [
    # Player has hit all ships on opponent's board (3x3 board)
    ([[],[[True, False, False], [True, False, False], [False, False, False]]],
     [[[True, False, False], [True, False, False], [False, False, False]],[]],
     0,
     3,
     True),
    # Player has missed one ship (3x3 board)
    ([[],[[True, False, False], [True, False, False], [False, False, False]]],
     [[[True, False, False], [False, False, False], [False, False, False]],[]],
     0,
     3,
     False),
    # Empty board, no ships to hit (board0)
    ([[],[]],
     [[],[]],
     0,
     0,
     True),
    # Large board (10x10), all ships hit
    ([[[True, False, False, False, True, False, False, False, False, True], 
    [False, True, False, False, False, False, True, False, True, False], 
    [False, False, False, False, False, True, False, False, True, False],
    [False, True, False, False, True, False, True, False, False, True],
    [True, False, False, False, False, False, False, True, False, False],
    [False, True, True, False, True, False, False, False, True, False],
    [False, False, True, True, False, False, True, False, True, False],
    [False, False, False, True, True, False, False, False, False, False],
    [True, False, False, False, False, False, True, False, False, True],
    [False, True, False, False, False, True, False, False, False, True]],[]],
    [[],[[True, False, False, False, True, False, False, False, False, True], 
    [False, True, False, False, False, False, True, False, True, False], 
    [False, False, False, False, False, True, False, False, True, False],
    [False, True, False, False, True, False, True, False, False, True],
    [True, False, False, False, False, False, False, True, False, False],
    [False, True, True, False, True, False, False, False, True, False],
    [False, False, True, True, False, False, True, False, True, False],
    [False, False, False, True, True, False, False, False, False, False],
    [True, False, False, False, False, False, True, False, False, True],
    [False, True, False, False, False, True, False, False, False, True]]],
    1,
    10,
    True),
    # Large board (10x10), missed some ships
    ([[[True, False, False, False, True, False, False, False, False, True], 
    [False, True, False, False, False, False, True, False, True, False], 
    [False, False, False, False, False, True, False, False, True, False],
    [False, True, False, False, True, False, True, False, False, True],
    [True, False, False, False, False, False, False, True, False, False],
    [False, True, True, False, True, False, False, False, True, False],
    [False, False, True, True, False, False, True, False, True, False],
    [False, False, False, True, True, False, False, False, False, False],
    [True, False, False, False, False, False, True, False, False, True],
    [False, True, False, False, False, True, False, False, False, True]],[]],
    [[],[[True, False, False, False, True, False, False, False, False, False], 
    [False, True, False, False, False, False, True, False, True, False], 
    [False, False, False, False, False, True, False, False, True, False],
    [False, True, False, False, True, False, True, False, False, True],
    [True, False, False, False, False, False, False, True, False, False],
    [False, True, True, False, True, False, False, False, True, False],
    [False, False, True, True, False, False, True, False, True, False],
    [False, False, False, True, True, False, False, False, False, False],
    [True, False, False, False, False, False, True, False, False, False],
    [False, True, False, False, False, True, False, False, False, False]]],
    1,
    10,
    False
    )
])
def test_check_win(board_ships, board_hits, player, size_board, expected):
    assert task11.check_win(board_ships, board_hits, player, size_board) == expected