You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AdventOfCode19/days/test_day8.py

54 lines
1.3 KiB

import os
import sys
imgsize = 25 * 6
def get_image():
inputfile = os.path.join(os.path.dirname(__file__), "input/day8_input")
with open(inputfile) as fp:
img = [int(k) for k in str(fp.readline())]
breaks = [imgsize*k for k in range(len(img)//imgsize+1)]
return [img[b:e] for b, e in zip(breaks, breaks[1:])]
def test_day8a():
layers = get_image()
min = sys.maxsize
layer = 0
for i, l in enumerate(layers):
z = l.count(0)
if z < min:
min = z
layer = i
solution = layers[layer].count(1)*layers[layer].count(2)
assert solution == 2806
def test_day8b():
layers = get_image()
result = [2 for i in range(imgsize)]
for pos in range(imgsize):
for l in layers:
result[pos] = l[pos] if result[pos] == 2 else result[pos]
result = ['#' if x == 0 else '.' if x == 1 else ' ' for x in result]
for k in range(len(result)):
# print(result[k], end='')
if (k+1) % 25 == 0:
# print('')
pass
expected = """\
....#...####..##..##...##\
###.#.##.####.#.##.#.##.#\
##.##...#####.#.##.#...##\
#.###.##.####.#....#.##.#\
.####.##.#.##.#.##.#.##.#\
....#...###..##.##.#...##\
"""
assert "".join(result) == expected