code: def testDeserializeCrossSliceKey(self):
      slice_metrics = text_format.Parse(
          """
            baseline_slice_key {
              single_slice_keys {
                column: 'age'
                int64_value: 5
              }
              single_slice_keys {
                column: 'language'
                bytes_value: 'english'
              }
              single_slice_keys {
                column: 'price'
                float_value: 1.0
              }
            }
            comparison_slice_key {
              single_slice_keys {
                column: 'age'
                int64_value: 8
              }
              single_slice_keys {
                column: 'language'
                bytes_value: 'hindi'
              }
            }
          """,
          metrics_for_slice_pb2.CrossSliceKey(),
      )
  
      got_slice_key = slicer.deserialize_cross_slice_key(slice_metrics)
      self.assertCountEqual(
          (
              (("age", 5), ("language", "english"), ("price", 1.0)),
              (("age", 8), ("language", "hindi")),
          ),
          got_slice_key,
      )
  
imports: from absl.testing import parameterized
  import apache_beam
  from apache_beam.testing import util
  import numpy
  import six
  import tensorflow
  from tensorflow_model_analysis import constants
  from tensorflow_model_analysis.api import types
  from tensorflow_model_analysis.eval_saved_model import testutil
  from tensorflow_model_analysis.extractors import slice_key_extractor
  from tensorflow_model_analysis.post_export_metrics import metric_keys
  from tensorflow_model_analysis.proto import config_pb2
  from tensorflow_model_analysis.proto import metrics_for_slice_pb2
  from tensorflow_model_analysis.slicer import slicer_lib
  from google.protobuf import text_format
label_desc: Use image node_id 5 for calling the SlicerTest obj's underlying member method code with example usage: obj.testDeserializeCrossSliceKey() without return types