Ejemplo n.º 1
0
def test_inout_opcodes():
    program = parse_program('3,0,4,0,99')
    c = Computer(program)
    c.push_input(27)
    c.execute()
    output = c.pop_output()
    assert output == 27
Ejemplo n.º 2
0
def test_jump_in_immediate_mode():
    program = parse_program('3,3,1105,-1,9,1101,0,0,12,4,12,99,1')
    c = Computer(program)
    c.push_input(0)
    c.execute()
    assert c.pop_output() == 0

    program = parse_program('3,3,1105,-1,9,1101,0,0,12,4,12,99,1')
    c = Computer(program)
    c.push_input(80)
    c.execute()
    assert c.pop_output() == 1
Ejemplo n.º 3
0
def test_jump_in_pos_mode():
    program = parse_program('3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9')
    c = Computer(program)
    c.push_input(0)
    c.execute()
    assert c.pop_output() == 0

    program = parse_program('3,12,6,12,15,1,13,14,13,4,13,99,-1,0,1,9')
    c = Computer(program)
    c.push_input(80)
    c.execute()
    assert c.pop_output() == 1
Ejemplo n.º 4
0
def test_large_input():
    program = parse_program(
        '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'
    )
    c = Computer(program)
    c.push_input(6)
    c.execute()
    assert c.pop_output() == 999

    program = parse_program(
        '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'
    )
    c = Computer(program)
    c.push_input(8)
    c.execute()
    assert c.pop_output() == 1000

    program = parse_program(
        '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'
    )
    c = Computer(program)
    c.push_input(10)
    c.execute()
    assert c.pop_output() == 1001
Ejemplo n.º 5
0
#!/usr/bin/env python3

from intcode import read_program, Computer

if __name__ == '__main__':
    program = read_program('day05.txt')
    c = Computer(program)
    c.push_input(5)
    c.execute()
Ejemplo n.º 6
0
def test_not_less_than_8_immediate_mode():
    program = parse_program('3,3,1107,-1,8,3,4,3,99')
    c = Computer(program)
    c.push_input(8)
    c.execute()
    assert c.pop_output() == 0
Ejemplo n.º 7
0
def test_equal_to_8_pos_mode():
    program = parse_program('3,9,8,9,10,9,4,9,99,-1,8')
    c = Computer(program)
    c.push_input(8)
    c.execute()
    assert c.pop_output() == 1
Ejemplo n.º 8
0
def test_not_equal_to_8_immediate_mode():
    program = parse_program('3,3,1108,-1,8,3,4,3,99')
    c = Computer(program)
    c.push_input(7)
    c.execute()
    assert c.pop_output() == 0
Ejemplo n.º 9
0
def test_not_less_than_8_pos_mode():
    program = parse_program('3,9,7,9,10,9,4,9,99,-1,8')
    c = Computer(program)
    c.push_input(8)
    c.execute()
    assert c.pop_output() == 0
Ejemplo n.º 10
0
def test_original_day02_program():
    program = read_program('day02.txt')
    program1202 = [program[0],12,2] + program[3:]
    c = Computer(program1202)
    c.execute()
    assert c.state[0] == 4714701
Ejemplo n.º 11
0
def test_negatives():
    program = parse_program('1101,100,-1,4,0')
    c = Computer(program)
    c.execute()
    assert c.state == [1101, 100, -1, 4, 99]
Ejemplo n.º 12
0
def test_modes():
    program = parse_program('1002,4,3,4,33')
    c = Computer(program)
    c.execute()
    assert c.state == [1002, 4, 3, 4, 99]