def test_others(data, part1, part2): day = Day(9, 1) day.load(data, typing=int, sep=",") day.input(1).execute_opcode() assert day.result == part1 day.reset().input(2).execute_opcode() assert day.result == part2
def test_reset(): day = Day(1, 1) day.load() test = day.data[0] day.data[0] = None assert day.data[0] is None day.reset() assert day.data[0] == test
def test_given_1(monkeypatch, data, part1_in, part2_in): part1 = Day(5, 2) part1.load(data, sep=",") monkeypatch.setattr("builtins.input", lambda x: part1_in) part1.execute_opcode() assert part1.diagnostic == 0 part1.reset() monkeypatch.setattr("builtins.input", lambda x: part2_in) part1.execute_opcode() assert part1.diagnostic == 1
def test_bake(): day = Day(1, 1) day.load([1, 2, 3]) day.data = [0] assert day.data == [0] day.bake() assert len(day.raw_data) == 2 day.data = [1] assert day.data == [1] day.reset() assert day.data == [0] day.hist() day.reset(0) assert len(day.raw_data) == 1 assert type(day.raw_data) == list
for i in range(100): for j in range(100): data = part2.data.copy() data[1] = i data[2] = j out = compute(data) if out is None: continue elif out[0] == 19690720: print(i, j) print(part2.answer(100 * i + j)) break obj_part2 = Day(2, 2) obj_part2.load(typing=int, sep=",") for i in range(100): for j in range(100): obj_part2.reset() obj_part2.data[1:3] = [i, j] out = obj_part2.execute_opcode() if out is None: continue elif out[0] == 19690720: print(i, j) print(obj_part2.answer(100 * i + j)) break # out = sum(part2.apply(fuelchain)) # print(part2.desc)