Source code for day12.tests.test_day12

"""day12 tests."""
from day12.day12 import INPUT_SMALL, SpringLine, calculate_sum, get_input


[docs] def test_calculate_sum() -> None: """Test ``calculate_sum()``.""" spring_lines: list[SpringLine] = get_input(INPUT_SMALL) assert calculate_sum(spring_lines) == 21 spring_lines = [spring_line.unfold() for spring_line in spring_lines] assert calculate_sum(spring_lines) == 525152
[docs] def test_parser() -> None: """Test ``get_input()``.""" spring_lines: list[SpringLine] = get_input(INPUT_SMALL) assert spring_lines[0].items == "???.###" assert spring_lines[0].broken_springs == [1, 1, 3] assert len(spring_lines) == 6
[docs] def test_spring_line() -> None: """Test ``SpringLine`` class.""" spring_line = SpringLine("?###????????", [3, 2, 1]) assert spring_line.calculate() == 10 spring_line = SpringLine("???.###", [1, 1, 3]) unfolded = spring_line.unfold() assert unfolded.items == "???.###????.###????.###????.###????.###" assert unfolded.broken_springs == [1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3, 1, 1, 3]