code: def test_generate_statistics_in_memory_invalid_custom_generator(self):
      # Dummy PTransform that does nothing.
      class CustomPTransform(beam.PTransform):
          def expand(self, pcoll):
              pass
  
      record_batch = pa.RecordBatch.from_arrays(
          [pa.array([[1.0]])], ["a"]
      )
      custom_generator = stats_generator.TransformStatsGenerator(
          name="CustomStatsGenerator", ptransform=CustomPTransform()
      )
      options = stats_options.StatsOptions(
          generators=[custom_generator],
          enable_semantic_domain_stats=True,
      )
      with self.assertRaisesRegex(
          TypeError,
          "Statistics generator.* found object of type "
          "TransformStatsGenerator.",
      ):
          stats_impl.generate_statistics_in_memory(
              record_batch, options
          )
  
imports: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import copy
  import sys
  from typing import Iterable
  import unittest
  from absl.testing import absltest
  from absl.testing import parameterized
  import apache_beam
  from apache_beam.testing import util
  import numpy
  import pyarrow
  from tensorflow_data_validation.statistics import stats_impl
  from tensorflow_data_validation.statistics import stats_options
  from tensorflow_data_validation.statistics.generators import cross_feature_stats_generator
  from tensorflow_data_validation.statistics.generators import stats_generator
  from tensorflow_data_validation.utils import slicing_util
  from tensorflow_data_validation.utils import test_util
  from tfx_bsl.arrow import array_util
  from tfx_bsl.arrow import table_util
  from tfx_bsl.public.proto import slicing_spec_pb2
  from tfx_bsl.statistics import merge_util
  from google.protobuf import text_format
  from tensorflow.python.util.protobuf import compare
  from tensorflow_metadata.proto.v0 import schema_pb2
  from tensorflow_metadata.proto.v0 import statistics_pb2
label_desc: Use image node_id 10 for calling the StatsImplTest obj's underlying member method code with example usage: obj.test_generate_statistics_in_memory_invalid_custom_generator() without return types