Exemplo n.º 1
0
def test_parts(tty, result):
    day = Day(9, 1)
    day.load(typing=int, sep=",")

    day.input(tty)
    day.execute_opcode()
    assert day.result == result
Exemplo n.º 2
0
def test_opcode_three_in_2():
    day = Day(5, 1)
    day.load(typing=int, sep=",")
    day.input(1)
    day.execute_opcode()

    assert day.diagnostic == 7692125
Exemplo n.º 3
0
def test_given_0():
    test = Day(4, 1)
    test.load([1002, 4, 3, 4, 33], sep=",")

    test.execute_opcode()
    print(test.answer(test.data[4]))
    assert test.result == 99
Exemplo n.º 4
0
def test_given_long(monkeypatch, type_in, result):
    part1 = Day(5, 2)
    part1.load(
        [
            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,
        ],
        sep=",",
    )

    monkeypatch.setattr("builtins.input", lambda x: type_in)
    part1.execute_opcode()
    assert part1.diagnostic == result
Exemplo n.º 5
0
def test_opcode_three_in_1():
    day = Day(5, 2)
    day.load(typing=int, sep=",")

    day.input(5)

    day.execute_opcode()

    assert day.diagnostic == 14340395
Exemplo n.º 6
0
def test_given_1():
    part1 = Day(9, 1)

    quine = [
        109, 1, 204, -1, 1001, 100, 1, 100, 1008, 100, 16, 101, 1006, 101, 0,
        99
    ]

    part1.load(quine.copy())
    part1.execute_opcode()

    assert part1[:len(quine)] == quine
Exemplo n.º 7
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
Exemplo n.º 8
0
def test_given_3():
    part1 = Day(9, 1)
    middle = [104, 1125899906842624, 99]
    part1.load(middle.copy())
    out = part1.execute_opcode()

    assert middle[1] == part1.result
Exemplo n.º 9
0
def test_given(data, index, result):
    part1_obj = Day(2, 1)
    part1_obj.load(data)
    part1_obj.execute_opcode()
    print(part1_obj.answer(part1_obj.data[index]))
    assert part1_obj.result == result
Exemplo n.º 10
0
def test_given_2():
    part1 = Day(9, 1)
    part1.load([1102, 34915192, 34915192, 7, 4, 7, 99, 0])
    part1.execute_opcode()

    assert len(str(part1.result)) == 16
Exemplo n.º 11
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)
Exemplo n.º 12
0
from util import Day

if __name__ == "__main__":
    # Part 1
    part1 = Day(5, 1)
    part1.load(typing=int, sep=",")

    out = part1.execute_opcode()

    part1.answer(part1.diagnostic, v=1)

    # Part 1
    part2 = Day(5, 2)
    part2.load(typing=int, sep=",")

    out = part2.execute_opcode()

    part2.answer(part2.diagnostic, v=1)