advent-of-code/2021-python/tests/test_day_08.py

67 lines
2.3 KiB
Python
Raw Normal View History

import unittest
from solutions.day_08 import Solution
class Day08TestCase(unittest.TestCase):
def setUp(self):
self.solution = Solution()
self.puzzle_input = self.solution.parse_input(
"""
be cfbegad cbdgef fgaecd cgeb fdcge agebfd fecdb fabcd edb | fdgacbe cefdb cefbgd gcbe
edbfga begcd cbg gc gcadebf fbgde acbgfd abcde gfcbed gfec | fcgedb cgb dgebacf gc
fgaebd cg bdaec gdafb agbcfd gdcbef bgcad gfac gcb cdgabef | cg cg fdcagb cbg
fbegcd cbd adcefb dageb afcb bc aefdc ecdab fgdeca fcdbega | efabcd cedba gadfec cb
aecbfdg fbg gf bafeg dbefa fcge gcbea fcaegb dgceab fcbdga | gecf egdcabf bgf bfgea
fgeab ca afcebg bdacfeg cfaedg gcfdb baec bfadeg bafgc acf | gebdcfa ecba ca fadegcb
dbcfg fgd bdegcaf fgec aegbdf ecdfab fbedc dacgb gdcebf gf | cefg dcbef fcge gbcadfe
bdfegc cbegaf gecbf dfcage bdacg ed bedf ced adcbefg gebcd | ed bcgafe cdgba cbgef
egadfb cdbfeg cegd fecab cgb gbdefca cg fgcdab egfdb bfceg | gbdfcae bgc cg cgb
gcafb gcf dcaebfg ecagb gf abcdeg gaef cafbge fdbac fegbdc | fgae cfgab fg bagce
"""
)
def test_parse_puzzle_input(self):
data = """
be cfbegad | fdgacbe cefdb
edbfga begcd cbg | fcgedb cgb dgebacf
"""
assert self.solution.parse_input(data) == [
(["be", "cfbegad"], ["fdgacbe", "cefdb"]),
(["edbfga", "begcd", "cbg"], ["fcgedb", "cgb", "dgebacf"]),
]
def test_solve_first_part(self):
assert self.solution.solve(self.puzzle_input) == 26
def test_solve_second_part(self):
assert (
self.solution.solve_again(
[
(
[
"acedgfb",
"cdfbe",
"gcdfa",
"fbcad",
"dab",
"cefabd",
"cdfgeb",
"eafb",
"cagedb",
"ab",
],
["cdfeb", "fcadb", "cdfeb", "cdbaf"],
),
]
)
== 5353
)
assert self.solution.solve_again(self.puzzle_input) == 61229
if __name__ == "__main__":
unittest.main()