import unittest from solutions.day_07 import Solution, Program class Day7TestCase(unittest.TestCase): def setUp(self): self.puzzle_input = ''' pbga (66) xhth (57) ebii (61) havc (66) ktlj (57) fwft (72) -> ktlj, cntj, xhth qoyq (66) padx (45) -> pbga, havc, qoyq tknk (41) -> ugml, padx, fwft jptl (61) ugml (68) -> gyxo, ebii, jptl gyxo (61) cntj (57) '''.strip() self.solution = Solution() def test_find_bottom_tower(self): p = Program('ugml (68) -> gyxo, ebii, jptl') assert p.name == 'ugml' assert p.weight == 68 assert p.disc == ('gyxo', 'ebii', 'jptl') p = Program('jptl (61)') assert p.name == 'jptl' assert p.weight == 61 assert p.disc == () assert self.solution.solve(self.puzzle_input).name == 'tknk' def test_find_weight_correction(self): corrected = self.solution.solve_again(self.puzzle_input) assert corrected == 60 if __name__ == '__main__': unittest.main()