code: def test_vi_text_objects():
      feed = partial(_feed_cli_with_input, editing_mode=EditingMode.VI)
  
      # Esc gUgg
      result, cli = feed("hello\x1bgUgg\n")
      assert result.text == "HELLO"
  
      # Esc gUU
      result, cli = feed("hello\x1bgUU\n")
      assert result.text == "HELLO"
  
      # Esc di(
      result, cli = feed("before(inside)after\x1b8hdi(\n")
      assert result.text == "before()after"
  
      # Esc di[
      result, cli = feed("before[inside]after\x1b8hdi[\n")
      assert result.text == "before[]after"
  
      # Esc da(
      result, cli = feed("before(inside)after\x1b8hda(\n")
      assert result.text == "beforeafter"
  
imports: from __future__ import unicode_literals
  from prompt_toolkit.application import Application
  from prompt_toolkit.buffer import Buffer, AcceptAction
  from prompt_toolkit.clipboard import InMemoryClipboard, ClipboardData
  from prompt_toolkit.enums import DEFAULT_BUFFER, EditingMode
  from prompt_toolkit.eventloop.posix import PosixEventLoop
  from prompt_toolkit.history import InMemoryHistory
  from prompt_toolkit.input import PipeInput
  from prompt_toolkit.interface import CommandLineInterface
  from prompt_toolkit.key_binding.manager import KeyBindingManager
  from prompt_toolkit.output import DummyOutput
  from prompt_toolkit.terminal.vt100_input import ANSI_SEQUENCES
  from functools import partial
  import pytest
label_desc: Use image node_id 21 for calling a global function with example usage: test_vi_text_objects() without return types