code: def test_flat_map_generator(ray_start_regular_shared):
      ds = ray.data.range(3)
  
      def map_generator(item: dict) -> Iterator[int]:
          for _ in range(2):
              yield {"id": item["id"] + 1}
  
      assert sorted(
          extract_values("id", ds.flat_map(map_generator).take())
      ) == [
          1,
          1,
          2,
          2,
          3,
          3,
      ]
  
imports: import itertools
  import math
  import os
  import signal
  import threading
  import time
  from typing import Iterator
  import numpy
  import pandas
  import pyarrow
  import pyarrow.parquet
  import pytest
  import ray
  from ray._private.test_utils import wait_for_condition
  from ray.data.block import BlockAccessor
  from ray.data.context import DataContext
  from ray.data.tests.conftest import *
  from ray.data.tests.util import column_udf, column_udf_class, extract_values
  from ray.tests.conftest import *
label_desc: Use image node_id 6 for calling a global function with example usage: test_flat_map_generator(ray_start_regular_shared) without return types