code: def testFromGeneratorImplicitConversion(self):
      def generator():
          yield [1]
          yield [2]
          yield [3]
  
      for dtype in [dtypes.int8, dtypes.int32, dtypes.int64]:
          dataset = dataset_ops.Dataset.from_generator(
              generator, output_types=dtype, output_shapes=[1]
          )
          get_next = self.getNext(dataset)
  
          for expected in [[1], [2], [3]]:
              next_val = self.evaluate(get_next())
              self.assertEqual(dtype.as_numpy_dtype, next_val.dtype)
              self.assertAllEqual(expected, next_val)
          with self.assertRaises(errors.OutOfRangeError):
              self.evaluate(get_next())
  
imports: import threading
  from absl.testing import parameterized
  import numpy
  from tensorflow.python.data.kernel_tests import test_base
  from tensorflow.python.data.ops import dataset_ops
  from tensorflow.python.data.ops import from_generator_op
  from tensorflow.python.framework import combinations
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import errors
  from tensorflow.python.framework import sparse_tensor
  from tensorflow.python.framework import tensor_spec
  from tensorflow.python.ops import script_ops
  from tensorflow.python.ops import sparse_ops
  from tensorflow.python.ops.ragged import ragged_factory_ops
  from tensorflow.python.ops.ragged import ragged_tensor
  from tensorflow.python.platform import test
label_desc: Use image node_id 8 for calling the FromGeneratorTest obj's underlying member method code with example usage: obj.testFromGeneratorImplicitConversion() without return types