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
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
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
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
#!/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()
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
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
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
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
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
def test_negatives(): program = parse_program('1101,100,-1,4,0') c = Computer(program) c.execute() assert c.state == [1101, 100, -1, 4, 99]
def test_modes(): program = parse_program('1002,4,3,4,33') c = Computer(program) c.execute() assert c.state == [1002, 4, 3, 4, 99]