code: def testTukeyHHAnalyzersWithRaggedInputs(self, input_dtype):
      tft_unit.skip_if_not_tf2(
          "RaggedFeature is not available in TF 1.x."
      )
  
      output_dtype = impl_test._mean_output_dtype(input_dtype)
      canonical_output_dtype = tft_unit.canonical_numeric_dtype(
          output_dtype
      )
  
      def analyzer_fn(inputs):
          a = tf.cast(inputs["a"], input_dtype)
  
          def assert_and_cast_dtype(tensor):
              self.assertEqual(tensor.dtype, output_dtype)
              return tf.cast(tensor, canonical_output_dtype)
  
          return {
              "tukey_location": assert_and_cast_dtype(
                  tft.tukey_location(a)
              ),
              "tukey_scale": assert_and_cast_dtype(tft.tukey_scale(a)),
              "tukey_hl": assert_and_cast_dtype(
                  tft.tukey_h_params(a)[0]
              ),
              "tukey_hr": assert_and_cast_dtype(
                  tft.tukey_h_params(a)[1]
              ),
          }
  
      input_data_values = [
          516,
          -871,
          737,
          415,
          584,
          583,
          152,
          479,
          576,
          409,
          591,
          844,
          -16,
          508,
          669,
          617,
          502,
          532,
          517,
          479,
      ]
      input_data = []
      for idx, v in enumerate(input_data_values):
          input_data.append(
              {
                  "val": [v, -input_data_values[-1 - idx]],
                  "row_lengths_1": [2, 0, 1],
                  "row_lengths_2": [0, 1, 1],
              }
          )
      input_metadata = tft.DatasetMetadata.from_feature_spec(
          {
              "a": tf.io.RaggedFeature(
                  tft_unit.canonical_numeric_dtype(input_dtype),
                  value_key="val",
                  partitions=[
                      tf.io.RaggedFeature.RowLengths(
                          "row_lengths_1"
                      ),  # pytype: disable=attribute-error
                      tf.io.RaggedFeature.RowLengths(
                          "row_lengths_2"
                      ),  # pytype: disable=attribute-error
                  ],
              ),
          }
      )
  
      expected_outputs = {
          "tukey_location": np.array(
              0.0, canonical_output_dtype.as_numpy_dtype
          ),
          "tukey_scale": np.array(
              572.2776, canonical_output_dtype.as_numpy_dtype
          ),
          "tukey_hl": np.array(
              0.0, canonical_output_dtype.as_numpy_dtype
          ),
          "tukey_hr": np.array(
              0.0, canonical_output_dtype.as_numpy_dtype
          ),
      }
  
      self.assertAnalyzerOutputs(
          input_data,
          input_metadata,
          analyzer_fn,
          expected_outputs,
          desired_batch_size=20,
          # Runs the test deterministically on the whole batch.
          beam_pipeline=beam.Pipeline(),
      )
  
file_path: transform/tensorflow_transform/beam/tukey_hh_params_integration_test.py
imports: import itertools
  import apache_beam
  import numpy
  import tensorflow
  import tensorflow_transform
  from tensorflow_transform.beam import impl
  from tensorflow_transform.beam import impl_test
  from tensorflow_transform.beam import tft_unit
label_desc: Use image node_id 9 for calling the TukeyHHParamsIntegrationTest obj's underlying member method code with example usage: obj.testTukeyHHAnalyzersWithRaggedInputs(input_dtype) and returns: dict, tf