code: def test_contribution_bounding_bound_input_nothing_dropped(self):
      input = [
          ("pid1", "pk1", 1),
          ("pid1", "pk1", 2),
          ("pid1", "pk2", 3),
          ("pid1", "pk2", 4),
      ]
      max_partitions_contributed = max_contributions_per_partition = 2
      bound_result = self._run_contribution_bounding(
          input,
          max_partitions_contributed,
          max_contributions_per_partition,
      )
  
      expected_result = [(("pid1", "pk2"), 2), (("pid1", "pk1"), 2)]
      self.assertEqual(set(expected_result), set(bound_result))
  
file_path: pipelinedp/analysis/tests/contribution_bounders_test.py
imports: import collections
  from absl.testing import absltest
  from absl.testing import parameterized
  import pipeline_dp
  import analysis.contribution_bounders
label_desc: Use image node_id 3 for calling the SamplingL0LinfContributionBounderTest obj's underlying member method code with example usage: obj.test_contribution_bounding_bound_input_nothing_dropped() without return types