28 lines
1.0 KiB
Python
28 lines
1.0 KiB
Python
# SPDX-License-Identifier: MIT
|
|
# Copyright (c) 2021 Akumatic
|
|
|
|
from code import part1, part2, read_file, hex2bin, decode_packet
|
|
|
|
def test():
|
|
assert decode_packet(hex2bin("D2FE28")) == (6, 4, 21, 2021)
|
|
assert decode_packet(hex2bin("38006F45291200")) == (1, 6, 49, [(6, 4, 11, 10), (2, 4, 16, 20)])
|
|
assert decode_packet(hex2bin("EE00D40C823060")) == (7, 3, 51, [(2, 4, 11, 1), (4, 4, 11, 2), (1, 4, 11, 3)])
|
|
print("Passed decoding tests")
|
|
assert part1("8A004A801A8002F478") == 16
|
|
assert part1("620080001611562C8802118E34") == 12
|
|
assert part1("C0015000016115A2E0802F182340") == 23
|
|
assert part1("A0016C880162017C3686B18A3D4780") == 31
|
|
print("Passed Part 1")
|
|
assert part2("C200B40A82") == 3
|
|
assert part2("04005AC33890") == 54
|
|
assert part2("880086C3E88112") == 7
|
|
assert part2("CE00C43D881120") == 9
|
|
assert part2("D8005AC2A8F0") == 1
|
|
assert part2("F600BC2D8F") == 0
|
|
assert part2("9C005AC2F8F0") == 0
|
|
assert part2("9C0141080250320F1802104A08") == 1
|
|
print("Passed Part 2")
|
|
|
|
if __name__ == "__main__":
|
|
test()
|