code: def _assert_test(
      self,
      num_buckets,
      baseline_examples,
      comparison_examples,
      lift_metric_value,
      ignore_out_of_bound_examples=False,
  ):
      eval_config = config_pb2.EvalConfig(
          cross_slicing_specs=[config_pb2.CrossSlicingSpec()]
      )
      computations = lift.Lift(
          num_buckets=num_buckets,
          ignore_out_of_bound_examples=ignore_out_of_bound_examples,
      ).computations(eval_config=eval_config, example_weighted=True)
      histogram = computations[0]
      lift_metrics = computations[1]
  
      with beam.Pipeline() as pipeline:
          # pylint: disable=no-value-for-parameter
          baseline_result = (
              pipeline
              | "CreateB" >> beam.Create(baseline_examples)
              | "ProcessB"
              >> beam.Map(metric_util.to_standard_metric_inputs)
              | "AddSliceB" >> beam.Map(lambda x: ((), x))
              | "ComputeHistogramB"
              >> beam.CombinePerKey(histogram.combiner)
          )  # pyformat: ignore
  
          comparison_result = (
              pipeline
              | "CreateC" >> beam.Create(comparison_examples)
              | "ProcessC"
              >> beam.Map(metric_util.to_standard_metric_inputs)
              | "AddSliceC" >> beam.Map(lambda x: (("slice"), x))
              | "ComputeHistogramC"
              >> beam.CombinePerKey(histogram.combiner)
          )  # pyformat: ignore
  
          # pylint: enable=no-value-for-parameter
  
          merged_result = (
              baseline_result,
              comparison_result,
          ) | "MergePCollections" >> beam.Flatten()
  
          def check_result(got):
              try:
                  self.assertLen(got, 2)
                  slice_1, metric_1 = got[0]
                  slice_2, metric_2 = got[1]
                  lift_value = None
                  if not slice_1:
                      lift_value = lift_metrics.cross_slice_comparison(
                          metric_1, metric_2
                      )
                  else:
                      lift_value = lift_metrics.cross_slice_comparison(
                          metric_2, metric_1
                      )
  
                  self.assertDictElementsAlmostEqual(
                      lift_value,
                      {
                          metric_types.MetricKey(
                              name=f"lift@{num_buckets}",
                              example_weighted=True,
                          ): lift_metric_value,
                      },
                  )
              except AssertionError as err:
                  raise util.BeamAssertException(err)
  
          util.assert_that(merged_result, check_result, label="result")
  
imports: from absl.testing import parameterized
  import apache_beam
  from apache_beam.testing import util
  import numpy
  import tensorflow
  from tensorflow_model_analysis.addons.fairness.metrics import lift
  from tensorflow_model_analysis.eval_saved_model import testutil
  from tensorflow_model_analysis.metrics import metric_types
  from tensorflow_model_analysis.metrics import metric_util
  from tensorflow_model_analysis.proto import config_pb2
label_desc: Use image node_id 1 for calling the LiftTest obj's underlying member method code with example usage: obj._assert_test(num_buckets, baseline_examples, comparison_examples, lift_metric_value, ignore_out_of_bound_examples) without return types