Advent-of-Code/2020/16/test_code.py
2020-12-16 15:39:11 +01:00

32 lines
1.1 KiB
Python

# SPDX-License-Identifier: MIT
# Copyright (c) 2020 Akumatic
from code import part1, part2, parseInput, get_valid_tickets, get_possible_positions, determine_positions
def test():
input = [
["class: 1-3 or 5-7", "row: 6-11 or 33-44", "seat: 13-40 or 45-50"],
["your ticket:", "7,1,14"],
["nearby tickets:", "7,3,47", "40,4,50", "55,2,20", "38,6,12"]
]
data = parseInput(input)
assert part1(data) == 71
print(f"Passed part 1")
input = [
["class: 0-1 or 4-19", "row: 0-5 or 8-19", "seat: 0-13 or 16-19"],
["your ticket:", "11,12,13"],
["nearby tickets:", "3,9,18", "15,1,5", "5,14,9"]
]
data = parseInput(input)
valid_tickets = get_valid_tickets(data)
possible_positions = get_possible_positions(data["rules"], valid_tickets)
positions = determine_positions(possible_positions)
assert positions == {"row": 0, "class": 1, "seat": 2}
assert data["you"][positions["class"]] == 12
assert data["you"][positions["row"]]== 11
assert data["you"][positions["seat"]] == 13
print(f"Passed part 2")
if __name__ == "__main__":
test()