advent-2022-python/advent/days/day24/test_solution.py
2023-01-08 14:02:48 +01:00

50 lines
1.2 KiB
Python

from advent.common import input
from advent.common.position import Position
from .solution import BlizTuple, Valley, day_num, part1, part2
def test_part1():
lines = input.read_lines(day_num, 'example01.txt')
expected = 18
result = part1(lines)
assert result == expected
def test_part2():
lines = input.read_lines(day_num, 'example01.txt')
expected = 54
result = part2(lines)
assert result == expected
def test_parse_line():
input = "#>>.<^<#"
expected: BlizTuple = (
[Position(0, 0), Position(1, 0)],
[Position(4, 0)],
[Position(3, 0), Position(5, 0)],
[])
result = Valley.parse_line(([], [], [], []), input, 0)
assert result == expected
def test_walk():
lines = input.read_lines(day_num, 'example01.txt')
valley = Valley.parse(lines)
result = valley.find_way(1)
assert result == 18
def test_walk2():
lines = input.read_lines(day_num, 'example01.txt')
valley = Valley.parse(lines)
result = valley.find_way(2)
assert result == (18 + 23)
def test_back_and_forth():
lines = input.read_lines(day_num, 'example01.txt')
valley = Valley.parse(lines)
result = valley.find_way(3)
assert result == 54