def test_part1_given0(): part1 = Day(9, 1) part1.load( data="109,1,204,-1,1001,100,1,100,1008,100,16,101,1006,101,0,99".split( ',')) part1.apply(int) part1.opcode() assert part1.result == 99
def test_part1(): part1 = Day(2, 1) part1.load(typing=int, sep=',') part1.data[1] = 12 part1.data[2] = 2 part1.opcode() assert part1.data[0] == 3409710
def test_part2_given_0(): part2 = Day(5,2) part2.load(data="3,21,1008,21,8,20,1005,20,22,107,8,21,20,1006,20,31,1106,0,36,98,0,0,1002,21,125,20,4,20,1105,1,46,104,999,1105,1,46,1101,1000,1,20,4,20,1105,1,46,98,99".split(',')) part2.apply(int) part2.opcode(7) assert part2.result == 999 part2.reset_apply() part2.opcode(8) assert part2.result == 1000 part2.reset_apply() part2.opcode(9) assert part2.result == 1001
from util import Day if __name__ == '__main__': # --Part01-- input=1 result=7692125 part1 = Day(5,1) part1.load(typing=int,sep=',') part1.opcode(1) print(part1.answer(part1.result)) # --Part02-- input=5 result=14340395 part2 = Day(5,2) part2.load(typing=int,sep=',') part2.opcode(5) print(part2.answer(part2.result))
from util import Day if __name__ == '__main__': # --Part 1-- input=1 result=3335138414 part1 = Day(9, 1) part1.load(typing=int, sep=',') part1.opcode(1) print(part1.answer()) # --Part 2-- input=2 result=49122 part2 = Day(9, 2) part2.load(typing=int, sep=',') part2.opcode(2) print(part2.answer())
def test_part1(): part1 = Day(5,1) part1.load(typing=int,sep=',') part1.opcode(1) assert part1.result == 7692125
def test_part2(): part2 = Day(5,2) part2.load(typing=int,sep=',') part2.opcode(5) assert part2.result == 14340395
def test_part1_given_0(): part1 = Day(5,1) part1.load(data="3,0,4,0,99".split(',')) part1.apply(int) part1.opcode(1) assert part1.result == 1
def test_part1(): part1 = Day(9, 1) part1.load(typing=int, sep=',') part1.opcode(1) assert part1.result == 3335138414
def test_part2(): part2 = Day(9, 2) part2.load(typing=int, sep=',') part2.opcode(2) assert part2.result == 49122
def test_part1_given2(): part1 = Day(9, 1) part1.load(data="104,1125899906842624,99".split(',')) part1.apply(int) part1.opcode() assert part1.result == 1125899906842624
def test_part1_given1(): part1 = Day(9, 1) part1.load(data="1102,34915192,34915192,7,4,7,99,0".split(',')) part1.apply(int) part1.opcode() assert part1.result == 1219070632396864
from util import Day def find_inputs(part2): for i in range(100): for j in range(100): part2.data[1] = i part2.data[2] = j if part2.opcode()[0] == 19690720: return(100 * i + j) part2.reset() if __name__ == '__main__': # --Part01-- 3409710 part1 = Day(2,1) part1.load(typing=int, sep=',') part1.data[1] = 12 part1.data[2] = 2 part1.opcode() print(part1.answer(part1.data[0])) # --Part02-- 7912 part2 = Day(2,2) part2.load(typing=int, sep=',') print(part2.answer(find_inputs(part2)))