code: def test_generators(one_worker_100MiB):
      @ray.remote(num_returns="dynamic")
      def remote_generator():
          for _ in range(3):
              yield np.zeros(10 * 1024 * 1024, dtype=np.uint8)
  
      gen = ray.get(remote_generator.remote())
      refs = list(gen)
      for r in refs:
          _fill_object_store_and_get(r)
  
      # Outer ID out of scope, we should still be able to get the dynamic
      # objects.
      del gen
      for r in refs:
          _fill_object_store_and_get(r)
  
      # Inner IDs out of scope.
      refs_oids = [r.binary() for r in refs]
      del r
      del refs
  
      for r_oid in refs_oids:
          _fill_object_store_and_get(r_oid, succeed=False)
  
imports: import logging
  import os
  import copy
  import platform
  import random
  import signal
  import sys
  import time
  import numpy
  import pytest
  import ray
  import ray.cluster_utils
  from ray._private.internal_api import memory_summary
  from ray._private.test_utils import SignalActor, put_object, wait_for_condition, wait_for_num_actors
  import ray._private.gcs_utils
label_desc: Use image node_id 18 for calling a global function with example usage: test_generators(one_worker_100MiB) without return types