def test_parse_parameter_with_three_modes(self): memory = [11104] expected_opcode = 4 expected_modes = [ Mode.IMMEDIATE, Mode.IMMEDIATE, Mode.IMMEDIATE, Mode.POSITION ] computer = IntComputer(memory) result_opcode, result_modes = computer.parse_parameter() assert result_opcode == expected_opcode assert result_modes == expected_modes
def test_parse_parameter_with_just_one_mode(self): memory = [102] expected_opcode = 2 expected_modes = [ Mode.IMMEDIATE, Mode.POSITION, Mode.POSITION, Mode.POSITION ] computer = IntComputer(memory) result_opcode, result_modes = computer.parse_parameter() assert result_opcode == expected_opcode assert result_modes == expected_modes
def test_parse_parameter_with_14(self): memory = [14] expected_opcode = 14 expected_modes = [ Mode.POSITION, Mode.POSITION, Mode.POSITION, Mode.POSITION ] computer = IntComputer(memory) result_opcode, result_modes = computer.parse_parameter() assert result_opcode == expected_opcode assert result_modes == expected_modes
def test_parse_parameter_with_example_from_description(self): """ a single opcode should result in the matching number as opcode and all modes should be 0 """ memory = [1001] expected_opcode = 1 expected_modes = [ Mode.POSITION, Mode.IMMEDIATE, Mode.POSITION, Mode.POSITION ] computer = IntComputer(memory) result_opcode, result_modes = computer.parse_parameter() assert result_opcode == expected_opcode assert result_modes == expected_modes
def test_parse_parameter_supports_standalone_opcode(self): """ a single opcode should result in the matching number as opcode and all modes should be 0 """ memory = [3] expected_opcode = 3 expected_modes = [ Mode.POSITION, Mode.POSITION, Mode.POSITION, Mode.POSITION ] computer = IntComputer(memory) result_opcode, result_modes = computer.parse_parameter() assert result_opcode == expected_opcode assert result_modes == expected_modes
def test_parse_parameter_supports_relative_mode(self): memory = [211104] expected_opcode = 4 expected_modes = [ Mode.IMMEDIATE, Mode.IMMEDIATE, Mode.IMMEDIATE, Mode.RELATIVE, ] computer = IntComputer(memory) result_opcode, result_modes = computer.parse_parameter() assert result_opcode == expected_opcode assert result_modes == expected_modes