def test_set_string_empty_tape_left_left_right_a():
    tape = Tape('B', ['a', 'b', 'X', 'B'], [])
    tape.move_left()
    tape.move_left()
    tape.move_right()
    tape.set_content('a')
    assert "(['B', 'a'])@1" == str(tape)
def test_set_content_empty_tape_left_left_right():
    tape = Tape('B', ['a', 'b', 'X', 'B'], [])
    tape.move_left()
    tape.move_left()
    tape.move_right()
    tape.set_content('a')
    assert tape.get_content() == 'a'
    assert tape.position == 1
    assert tape.content == ['B', 'a']
def test_get_content_of_non_empty_tape_with_head_moved_to_right_left():
    tape = Tape('B', ['a', 'b', 'X', 'B'], ['a', 'b'])
    tape.move_right()
    tape.move_left()
    assert tape.get_content() == 'a'
def test_get_content_of_non_empty_tape_at_start_with_head_moved_to_left():
    tape = Tape('B', ['a', 'b', 'X', 'B'], ['a', 'b'])
    tape.move_left()
    assert tape.get_content() == 'B'
    assert tape.position == 0