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_day13.py

35 lines
836 B

import os
from .comp import OpcodeComputer
inputfile = os.path.join(os.path.dirname(__file__), "input/day13_input")
def test_day13a():
comp = OpcodeComputer(inputfile).process_op([])
res = 0
for _ in comp:
comp.__next__()
res += 1 if comp.__next__() == 2 else 0
assert res == 309
def test_day13b():
dir = 0
pipe = iter(lambda: dir, 2)
comp = OpcodeComputer(inputfile)
comp.memory[0] = 2
proc = comp.process_op(pipe)
score = 0
padx = 0
for x in proc:
y = proc.__next__()
c = proc.__next__()
if c == 4:
dir = -1 if padx > x else 1 if padx < x else 0
padx += dir
elif c == 3:
padx = x
elif x == -1 and y == 0:
score = c
assert score == 15410