code: def test_union(ray_start_regular_shared):
      it1 = from_items(["a", "b", "c"], 1)
      it2 = from_items(["x", "y", "z"], 1)
      it = it1.union(it2)
      assert (
          repr(it) == "ParallelIterator[ParallelUnion[ParallelIterator["
          "from_items[str, 3, shards=1]], ParallelIterator["
          "from_items[str, 3, shards=1]]]]"
      )
      assert list(it.gather_sync()) == ["a", "x", "b", "y", "c", "z"]
  
imports: import sys
  import time
  import collections
  from collections import Counter
  import pytest
  import ray
  from ray.util.iter import from_items, from_iterators, from_range, from_actors, ParallelIteratorWorker, LocalIterator
  from ray._private.test_utils import Semaphore
label_desc: Use image node_id 31 for calling a global function with example usage: test_union(ray_start_regular_shared) without return types