49 lines
1.1 KiB
Python
49 lines
1.1 KiB
Python
from advent.common import input
|
|
|
|
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 = (
|
|
[(0, 0), (1, 0)],
|
|
[(4, 0)],
|
|
[(3, 0), (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
|