2021 Day 14
This commit is contained in:
35
2021/14/test_code.py
Normal file
35
2021/14/test_code.py
Normal file
@ -0,0 +1,35 @@
|
||||
# SPDX-License-Identifier: MIT
|
||||
# Copyright (c) 2021 Akumatic
|
||||
|
||||
from code import part1, part2, read_file, count
|
||||
|
||||
def count_chars(s: str) -> dict:
|
||||
cnt = dict()
|
||||
for c in s:
|
||||
if c in cnt:
|
||||
cnt[c] += 1
|
||||
else:
|
||||
cnt[c] = 1
|
||||
return cnt
|
||||
|
||||
def test():
|
||||
vals = read_file("test_input.txt")
|
||||
assert count(vals[0], vals[1], 1) == count_chars("NCNBCHB")
|
||||
assert count(vals[0], vals[1], 2) == count_chars("NBCCNBBBCBHCB")
|
||||
assert count(vals[0], vals[1], 3) == count_chars("NBBBCNCCNBBNBNBBCHBHHBCHB")
|
||||
assert count(vals[0], vals[1], 4) == count_chars("NBBNBNBBCCNBCNCCNBBNBBNBBBNBBNBBCBHCBHHNHCBBCBHCB")
|
||||
print("Passed Counting")
|
||||
|
||||
elements = count(vals[0], vals[1], 10)
|
||||
assert elements == {"B": 1749, "C": 298, "H": 161, "N": 865}
|
||||
assert part1(*vals) == 1588
|
||||
print("Passed Part 1")
|
||||
|
||||
elements = count(vals[0], vals[1], 40)
|
||||
assert elements["B"] == 2192039569602
|
||||
assert elements["H"] == 3849876073
|
||||
assert part2(*vals) == 2188189693529
|
||||
print("Passed Part 2")
|
||||
|
||||
if __name__ == "__main__":
|
||||
test()
|
Reference in New Issue
Block a user