code: def test_compute_metrics(
      self,
      num_partitions,
      contribution_values,
      params,
      expected_metrics,
  ):
      utility_analysis_combiner = combiners.PrivacyIdCountCombiner(
          *params
      )
      sparse_acc = _create_sparse_combiner_acc(
          [contribution_values], [num_partitions]
      )
      test_acc = utility_analysis_combiner.create_accumulator(
          sparse_acc
      )
  
      actual_metrics = utility_analysis_combiner.compute_metrics(
          test_acc
      )
      common.assert_dataclasses_are_equal(
          self, expected_metrics, actual_metrics
      )
  
      # Test that no type is np.float64
      self.assertTrue(_check_none_are_np_float64(actual_metrics))
  
imports: import dataclasses
  import numpy
  from absl.testing import absltest
  from absl.testing import parameterized
  from unittest.mock import patch
  from typing import Tuple
  import pipeline_dp
  from analysis import per_partition_combiners
  from analysis import metrics
  from analysis.tests import common
label_desc: Use image node_id 1 for calling the UtilityAnalysisPrivacyIdCountCombinerTest obj's underlying member method code with example usage: obj.test_compute_metrics(num_partitions, contribution_values, params, expected_metrics) without return types