35 lines
915 B
Python
35 lines
915 B
Python
import pytest
|
|
from logimage.domain.value_objects.clue import Clue
|
|
|
|
|
|
def test_clue_from_consecutive_cells() -> None:
|
|
cells = (True, True, False, True, False, False, True, True, True)
|
|
clue = Clue.from_row(cells)
|
|
assert clue.values == (2, 1, 3)
|
|
|
|
|
|
def test_clue_from_empty_row() -> None:
|
|
clue = Clue.from_row((False, False, False))
|
|
assert clue.values == ()
|
|
|
|
|
|
def test_clue_from_single_true_cell() -> None:
|
|
clue = Clue.from_row((False, True, False))
|
|
assert clue.values == (1,)
|
|
|
|
|
|
def test_clue_from_all_true_row() -> None:
|
|
clue = Clue.from_row((True, True, True))
|
|
assert clue.values == (3,)
|
|
|
|
|
|
def test_clue_is_immutable() -> None:
|
|
clue = Clue.from_row((True, False, True))
|
|
with pytest.raises(AttributeError):
|
|
clue.values = (99,) # type: ignore[misc]
|
|
|
|
|
|
def test_clue_trailing_true() -> None:
|
|
clue = Clue.from_row((False, True, True))
|
|
assert clue.values == (2,)
|