コード例 #1
0
    def test_multiple_call_set_on_the_same_cell(self, tape: Tape, args: t.Sequence[int], expected_value: int) -> None:
        for arg in args:
            tape.set(arg)

        actual_value = tape.get()

        assert actual_value == expected_value
コード例 #2
0
    def test_multiple_shifts_right_in_one_step(self, tape: Tape, step_number: int) -> None:
        for _ in range(step_number):
            tape.shift_right(1)

        tape.set(10)

        tape.shift_left(step_number)
        tape.shift_right(step_number)

        assert tape.get() == 10
コード例 #3
0
    def test_general_valid_scenarios(self, tape: Tape, scenario: t.Sequence[t.Callable[[Tape], None]],
                                     expected_result: int) -> None:
        for step in scenario:
            step(tape)

        actual_result = tape.get()

        assert actual_result == expected_result
コード例 #4
0
 def test_get(self, tape: Tape) -> None:
     assert tape.get() == 0
コード例 #5
0
    def test_shift_right(self, tape: Tape) -> None:
        tape.shift_right(1)

        assert tape.get() == 0
コード例 #6
0
    def test_set(self, tape: Tape) -> None:
        tape.set(1)

        assert tape.get() == 1
コード例 #7
0
 def test_multiple_call_get(self, tape: Tape, call_number: int) -> None:
     for _ in range(call_number):
         assert tape.get() == 0
コード例 #8
0
 def test_can_not_set_invalid_value(self, tape: Tape, invalid_value: int) -> None:
     with pytest.raises(ValueError):
         tape.set(invalid_value)
コード例 #9
0
    def test_set_all_valid_values(self, tape: Tape) -> None:
        for byte in range(0, 256):
            tape.set(byte)

            assert tape.get() == byte