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
Exemple #2
0
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
Exemple #3
0
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
Exemple #4
0
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
Exemple #5
0
    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)