code: def test_custom_transform_fn(self):
      estimator_with_customized_transform_fn = (
          tfr_estimator.EstimatorBuilder(
              _context_feature_columns(),
              _example_feature_columns(),
              _scoring_function,
              transform_function=_multiply_by_two_transform_fn,
              hparams=_get_hparams(),
          )
      )
  
      (
          context,
          example,
      ) = estimator_with_customized_transform_fn._transform_fn(
          {
              "f1": tf.ones([10, 10, 1], dtype=tf.float32),
              "f2": tf.ones([10, 10, 1], dtype=tf.float32) * 2.0,
              "f3": tf.ones([10, 10, 1], dtype=tf.float32) * 3.0,
              "c1": tf.ones([10, 1], dtype=tf.float32),
              "c2": tf.ones([10, 1], dtype=tf.float32) * 2.0,
          },
          tf_estimator.ModeKeys.TRAIN,
      )
  
      self.assertCountEqual(context.keys(), ["c1"])
      self.assertCountEqual(example.keys(), ["f1", "f2", "f3"])
      # By adopting `_multiply_by_two_transform_fn`, the `context` and `example`
      # tensors will be both multiplied by 2.
      self.assertAllEqual(2 * tf.ones(shape=[10, 1]), context["c1"])
      self.assertAllEqual(2 * tf.ones(shape=[10, 10, 1]), example["f1"])
  
imports: import os
  from absl.testing import parameterized
  import six
  import tensorflow
  from tensorflow import estimator
  from google.protobuf import text_format
  from tensorflow_ranking.python import data
  from tensorflow_ranking.python import estimator
  from tensorflow_ranking.python import feature
  from tensorflow_serving.apis import input_pb2
label_desc: Use image node_id 7 for calling the EstimatorBuilderTest obj's underlying member method code with example usage: obj.test_custom_transform_fn() without return types