code: def fixture_hdf5_graph(request):
      """fixture_hdf5_graph"""
      import h5py  # pylint: disable=import-outside-toplevel
  
      tmp_path = tempfile.mkdtemp()
      filename = os.path.join(tmp_path, "test.h5")
  
      data = list(range(5000))
  
      string_data = ["D" + str(i) for i in range(5000)]
  
      complex_data = [(1.0 + 2.0j) * i for i in range(5000)]
  
      with h5py.File(filename, "w") as f:
          f.create_dataset(
              "uint8", data=np.asarray(data, np.uint8) % 256, dtype="u1"
          )
          f.create_dataset(
              "uint16", data=np.asarray(data, np.uint16), dtype="u2"
          )
          f.create_dataset(
              "uint32", data=np.asarray(data, np.uint32), dtype="u4"
          )
          f.create_dataset(
              "uint64", data=np.asarray(data, np.uint64), dtype="u8"
          )
          f.create_dataset(
              "int8", data=np.asarray(data, np.int8) % 128, dtype="i1"
          )
          f.create_dataset(
              "int16", data=np.asarray(data, np.int16), dtype="i2"
          )
          f.create_dataset(
              "int32", data=np.asarray(data, np.int32), dtype="i4"
          )
          f.create_dataset(
              "int64", data=np.asarray(data, np.int64), dtype="i8"
          )
          f.create_dataset(
              "float32", data=np.asarray(data, np.float32), dtype="f4"
          )
          f.create_dataset(
              "float64", data=np.asarray(data, np.float64), dtype="f8"
          )
          f.create_dataset(
              "complex64", data=np.asarray(complex_data, np.complex64)
          )
          f.create_dataset(
              "complex128", data=np.asarray(complex_data, np.complex128)
          )
          f.create_dataset(
              "string", data=np.asarray(string_data, "<S5")
          )
      args = filename
  
      def func(args):
          """func"""
          u8 = tfio.IODataset.from_hdf5(
              args, dataset="/uint8", spec=tf.uint8
          )
          u16 = tfio.IODataset.from_hdf5(
              args, dataset="/uint16", spec=tf.uint16
          )
          u32 = tfio.IODataset.from_hdf5(
              args, dataset="/uint32", spec=tf.uint32
          )
          u64 = tfio.IODataset.from_hdf5(
              args, dataset="/uint64", spec=tf.uint64
          )
          i8 = tfio.IODataset.from_hdf5(
              args, dataset="/int8", spec=tf.int8
          )
          i16 = tfio.IODataset.from_hdf5(
              args, dataset="/int16", spec=tf.int16
          )
          i32 = tfio.IODataset.from_hdf5(
              args, dataset="/int32", spec=tf.int32
          )
          i64 = tfio.IODataset.from_hdf5(
              args, dataset="/int64", spec=tf.int64
          )
          f32 = tfio.IODataset.from_hdf5(
              args, dataset="/float32", spec=tf.float32
          )
          f64 = tfio.IODataset.from_hdf5(
              args, dataset="/float64", spec=tf.float64
          )
          c64 = tfio.IODataset.from_hdf5(
              args, dataset="/complex64", spec=tf.complex64
          )
          c128 = tfio.IODataset.from_hdf5(
              args, dataset="/complex128", spec=tf.complex128
          )
          ss = tfio.IODataset.from_hdf5(
              args, dataset="/string", spec=tf.string
          )
          return tf.data.Dataset.zip(
              (
                  u8,
                  u16,
                  u32,
                  u64,
                  i8,
                  i16,
                  i32,
                  i64,
                  f32,
                  f64,
                  c64,
                  c128,
                  ss,
              )
          )
  
      expected = list(
          zip(
              (np.asarray(data, np.uint8) % 256).tolist(),
              np.asarray(data, np.uint16).tolist(),
              np.asarray(data, np.uint32).tolist(),
              np.asarray(data, np.uint64).tolist(),
              (np.asarray(data, np.int8) % 128).tolist(),
              np.asarray(data, np.int16).tolist(),
              np.asarray(data, np.int32).tolist(),
              np.asarray(data, np.int64).tolist(),
              np.asarray(data, np.float32).tolist(),
              np.asarray(data, np.float64).tolist(),
              np.asarray(complex_data, np.complex64).tolist(),
              np.asarray(complex_data, np.complex128).tolist(),
              np.asarray(string_data, "<S5").tolist(),
          )
      )
  
      def fin():
          if sys.platform != "win32":
              shutil.rmtree(tmp_path)
  
      request.addfinalizer(fin)
  
      return args, func, expected
  
imports: import os
  import sys
  import time
  import shutil
  import tempfile
  import numpy
  import pytest
  import tensorflow
  import tensorflow_io
label_desc: Use image node_id 19 for calling a global function with example usage: fixture_hdf5_graph(request) and returns: args,  func,  expected, tf