def test_cmd09_relative(self): code = Intcode([209, 7, 10, 3, 2, 3, 11, 13, 99, 30, 40, 50]) code.relative_base = 1 assert code.pointer == 0 operation = f'{code.program[code.pointer]:>05}' code.parm3, code.parm2, code.parm1 = map(int, tuple(operation[0:3])) code.cmd09() assert code.program == defaultdict( int, enumerate([209, 7, 10, 3, 2, 3, 11, 13, 99, 30, 40, 50])) assert code.pointer == 2 assert code.relative_base == 100 assert not code.terminated
def test_cmd01_relative11(self): code = Intcode([201, 9, 10, 3, 2, 3, 11, 0, 99, 30, 40, 50], 9, 10) code.relative_base = 1 operation = f'{code.program[code.pointer]:>05}' code.parm3, code.parm2, code.parm1 = map(int, tuple(operation[0:3])) code.cmd01() assert code.parm1 assert not code.parm2 assert not code.parm3 assert code.program == defaultdict( int, enumerate([201, 9, 10, 80, 2, 3, 11, 0, 99, 30, 40, 50])) assert code.pointer == 4 assert not code.terminated