"""Test the utilities module of PA1.

Author: YOUR NAME
Version: THE DATE
"""

from utilities import check_valid_size, initialize_board, display_board, \
    map_index_to_2d, map_2d_to_index, get_column_vals, get_row_vals


def test_check_valid_size():
    assert check_valid_size(4)
    assert not check_valid_size(5)


def test_initialize_board():
    assert initialize_board(2) == [None, None, None, None]


def test_display_board(capsys):
    board = [None, 'A',
             'B', 'C']
    display_board(board)
    out, err = capsys.readouterr()
    assert err == ""
    assert out == (
        "-  A\n"
        "B  C\n"
    )


def test_map_index_to_2d():
    assert map_index_to_2d(6, 4) == (1, 2)


def test_map_2d_to_index():
    assert map_2d_to_index((2, 3), 4) == 11


def test_get_column_vals():
    board = [None, 'A', 'B', None,
             'C', None, 'D', None,
             'E', 'F', None, None,
             None, None, None, None]
    assert get_column_vals(board, 1) == ['A', None, 'F', None]


def test_get_row_vals():
    board = [None, 'A', 'B', None,
             'C', None, 'D', None,
             'E', 'F', None, None,
             None, None, None, None]
    assert get_row_vals(board, 1) == [None, 'A', 'B', None]


if __name__ == "__main__":
    import pytest
    pytest.main(["-q", __file__])
