code: def get_test_values(*args: Variable) -> Union[Any, list[Any]]:
      r"""Get test values for multiple `Variable`\s.
  
      Intended use:
  
      .. code-block:: python
  
          for val_1, ..., val_n in get_debug_values(var_1, ..., var_n):
              if some condition on val_1, ..., val_n is not met:
                  missing_test_message("condition was not met")
  
  
      Given a list of variables, `get_debug_values` does one of three things:
  
      1. If the interactive debugger is off, returns an empty list
      2. If the interactive debugger is on, and all variables have
         debug values, returns a list containing a single element.
         This single element is either:
  
             a) if there is only one variable, the element is its
                 value
             b) otherwise, a tuple containing debug values of all
                 the variables.
  
      3. If the interactive debugger is on, and some variable does
         not have a debug value, issue a `missing_test_message` about
         the variable, and, if still in control of execution, return
         an empty list.
  
      """
  
      if config.compute_test_value == "off":
          return []
  
      rval = []
  
      for i, arg in enumerate(args):
          try:
              rval.append(get_test_value(arg))
          except TestValueError:
              if hasattr(arg, "name") and arg.name is not None:
                  missing_test_message(
                      f"Argument {i} ('{arg.name}') has no test value"
                  )
              else:
                  missing_test_message(
                      f"Argument {i} has no test value"
                  )
              return []
  
      if len(rval) == 1:
          return rval
  
      return [tuple(rval)]
  
imports: import copy
  import sys
  import warnings
  from abc import ABC, abstractmethod
  from collections.abc import Sequence
  from typing import TYPE_CHECKING, Any, Callable, Optional, Protocol, TypeVar, Union, cast
  import pytensor
  from pytensor.configdefaults import config
  from pytensor.graph.basic import Apply, Variable
  from pytensor.graph.utils import MetaObject, TestValueError, add_tag_trace, get_variable_trace_string
label_desc: Use image node_id 5 for calling a global function with example usage: get_test_values() and returns: list, list, rval, list