code: def test_objectref_inputs(workflow_start_regular_shared):
      from ray.workflow.tests.utils import skip_client_mode_test
  
      # TODO(suquark): Fix workflow with ObjectRefs as inputs under client mode.
      skip_client_mode_test()
  
      @ray.remote
      def nested_workflow(n: int):
          if n <= 0:
              return "nested"
          else:
              return workflow.continuation(nested_workflow.bind(n - 1))
  
      @ray.remote
      def deref_check(
          u: int, x: str, y: List[str], z: List[Dict[str, str]]
      ):
          try:
              return (
                  u == 42
                  and x == "nested"
                  and isinstance(y[0], ray.ObjectRef)
                  and ray.get(y) == ["nested"]
                  and isinstance(z[0]["output"], ray.ObjectRef)
                  and ray.get(z[0]["output"]) == "nested"
              ), f"{u}, {x}, {y}, {z}"
          except Exception as e:
              return False, str(e)
  
      output, s = workflow.run(
          deref_check.bind(
              ray.put(42),
              nested_workflow.bind(10),
              [nested_workflow.bind(9)],
              [{"output": nested_workflow.bind(7)}],
          )
      )
      assert output is True, s
  
file_path: ray/python/ray/workflow/tests/test_object_deref.py
imports: from typing import List, Dict
  from ray.tests.conftest import *
  import pytest
  import numpy
  import ray
  from ray import ObjectRef
  from ray import workflow
label_desc: Use image node_id 1 for calling a global function with example usage: test_objectref_inputs(workflow_start_regular_shared) and returns: str, workflow, unknown,  u, str, x, str, y, str, z, False,  str