lots of cleanup

This commit is contained in:
Ruediger Ludwig 2022-12-10 19:30:10 +01:00
parent 7d0d3e504e
commit 0385cbd62e
26 changed files with 337 additions and 417 deletions

View file

@ -1,7 +1,7 @@
from __future__ import annotations
from dataclasses import dataclass
from typing import Iterator
from typing import Iterator, Self
day_num = 8
@ -20,10 +20,10 @@ class Forest:
width: int
height: int
@staticmethod
def parse(lines: Iterator[str]) -> Forest:
@classmethod
def parse(cls, lines: Iterator[str]) -> Self:
trees = [[int(tree) for tree in line] for line in lines]
return Forest(trees, len(trees[0]), len(trees))
return cls(trees, len(trees[0]), len(trees))
def count_visible_trees(self) -> int:
visible: set[tuple[int, int]] = set()

View file

@ -1,45 +1,45 @@
from advent.common import utils
from advent.common import input
from .solution import Forest, day_num, part1, part2
def test_part1():
data = utils.read_data(day_num, 'test01.txt')
data = input.read_lines(day_num, 'test01.txt')
expected = 21
result = part1(data)
assert result == expected
def test_part2():
data = utils.read_data(day_num, 'test01.txt')
data = input.read_lines(day_num, 'test01.txt')
expected = 8
result = part2(data)
assert result == expected
def test_visible():
data = utils.read_data(day_num, 'test01.txt')
data = input.read_lines(day_num, 'test01.txt')
expected = 21
result = Forest.parse(data).count_visible_trees()
assert result == expected
def test_distance():
data = utils.read_data(day_num, 'test01.txt')
data = input.read_lines(day_num, 'test01.txt')
expected = 4
result = Forest.parse(data).single_scenic_score(2, 1)
assert result == expected
def test_distance2():
data = utils.read_data(day_num, 'test01.txt')
data = input.read_lines(day_num, 'test01.txt')
expected = 8
result = Forest.parse(data).single_scenic_score(2, 3)
assert result == expected
def test_max_distance():
data = utils.read_data(day_num, 'test01.txt')
data = input.read_lines(day_num, 'test01.txt')
expected = 8
result = Forest.parse(data).max_scenic_score()
assert result == expected