code: def test_vi_text_objects():
      feed = partial(_feed_cli_with_input, editing_mode=EditingMode.VI)
  
      # Esc gUgg
      result, cli = feed("hello\x1bgUgg\r")
      assert result.text == "HELLO"
  
      # Esc gUU
      result, cli = feed("hello\x1bgUU\r")
      assert result.text == "HELLO"
  
      # Esc di(
      result, cli = feed("before(inside)after\x1b8hdi(\r")
      assert result.text == "before()after"
  
      # Esc di[
      result, cli = feed("before[inside]after\x1b8hdi[\r")
      assert result.text == "before[]after"
  
      # Esc da(
      result, cli = feed("before(inside)after\x1b8hda(\r")
      assert result.text == "beforeafter"
  
imports: from __future__ import annotations
  from functools import partial
  import pytest
  from prompt_toolkit.clipboard import ClipboardData, InMemoryClipboard
  from prompt_toolkit.enums import EditingMode
  from prompt_toolkit.filters import ViInsertMode
  from prompt_toolkit.history import InMemoryHistory
  from prompt_toolkit.input.defaults import create_pipe_input
  from prompt_toolkit.input.vt100_parser import ANSI_SEQUENCES
  from prompt_toolkit.key_binding.bindings.named_commands import prefix_meta
  from prompt_toolkit.key_binding.key_bindings import KeyBindings
  from prompt_toolkit.output import DummyOutput
  from prompt_toolkit.shortcuts import PromptSession
label_desc: Use image node_id 25 for calling a global function with example usage: test_vi_text_objects() without return types