def test_move_wrong(gauge):  # noqa: F811
    card = MagicMock()
    card.is_knight = False
    card.movements_types = ['line', 'diagonal']

    gauge.move(None, None, card)
    assert gauge.value == 0
    gauge.move(MagicMock(), None, card)
    assert gauge.value == 0
    gauge.move(None, MagicMock(), card)
    assert gauge.value == 0
def test_move_from_x1_to_x31_circle(board):  # noqa: F811
    # We use the real implementation of a_start with the goal of finding the correct distance
    # traveled by the card.
    gauge = Gauge(board)  # noqa: 811
    from_ = board[1, 2]
    to = board[31, 1]
    card = MagicMock()
    card.is_knight = False
    card.movements_types = ['line']

    gauge.move(from_, to, card)

    assert gauge.value == 3
def test_move_knight(gauge, mocker):  # noqa: F811
    a_star = MagicMock(return_value=[None, None, None])
    mocker.patch('aot.cards.trumps.gauge.a_star', new=a_star)
    gauge._value = 10
    from_ = MagicMock()
    to = MagicMock()
    card = MagicMock()
    card.is_knight = True

    gauge.move(from_, to, card)

    assert not a_star.called
    assert gauge.value == 11
def test_move_all_movements_types(gauge, mocker):  # noqa: F811
    a_star = MagicMock(return_value=[None, None, None])
    mocker.patch('aot.cards.trumps.gauge.a_star', new=a_star)
    gauge._value = 10
    from_ = MagicMock()
    to = MagicMock()
    card = MagicMock()
    card.is_knight = False
    card.movements_types = ['line', 'diagonal']

    gauge.move(from_, to, card)

    a_star.assert_called_once_with(from_, to, None, movements_types=card.movements_types)
    assert gauge.value == 12