Re-Implement Day2

master
Arne Wischer 6 years ago
parent b00ec53621
commit 62ce050ed2
  1. 30
      days/day2.py

@ -4,11 +4,37 @@ import os
class Day2(unittest.TestCase):
inputfile = os.path.join(os.path.dirname(__file__), "input/day2_input")
def process_op(self, pc, mem):
cmd = mem[pc]
while cmd != 99:
if cmd == 1:
mem[mem[pc+3]] = mem[mem[pc+1]] + mem[mem[pc+2]]
pc += 4
elif cmd ==2:
mem[mem[pc+3]] = mem[mem[pc+1]] * mem[mem[pc+2]]
pc += 4
cmd = mem[pc]
return mem[0]
def test_day2a(self):
self.assertTrue(1 == 1)
with open(self.inputfile) as fp:
code = [int(k) for k in fp.readline().split(',')]
code[1] = 12
code[2] = 2
self.assertEqual(self.process_op(0, code), 5098658)
def test_day2b(self):
self.assertTrue(1 == 1)
with open(self.inputfile) as fp:
file_code = [int(k) for k in fp.readline().split(',')]
for a, b in [(x,y) for x in range(55) for y in range(70)]:
code = list(file_code)
code[1] = a
code[2] = b
result = self.process_op(0,code)
if result == 19690720:
break
self.assertEqual(100 * a + b, 5064)
if __name__ == "__main__":
unittest.main()
Loading…
Cancel
Save