code: def test_select_private_partitions_internal(
      self,
      min_users: int,
      strategy: pipeline_dp.PartitionSelectionStrategy,
      pre_threshold: Optional[int],
  ):
      input = [("pk1", (3, None)), ("pk2", (10, None))]
  
      engine = self._create_dp_engine_default()
      expected_data_filtered = [x for x in input if x[1][0] > min_users]
  
      with patch(
          "pipeline_dp.partition_selection"
          ".create_partition_selection_strategy",
          return_value=MockPartitionStrategy(min_users),
      ) as mock_method:
          max_partitions_contributed = 2
          data_filtered = engine._select_private_partitions_internal(
              input,
              max_partitions_contributed,
              max_rows_per_privacy_id=1,
              strategy=strategy,
              pre_threshold=pre_threshold,
          )
          engine._budget_accountant.compute_budgets()
          self.assertListEqual(
              list(data_filtered), expected_data_filtered
          )
          args = list(mock_method.call_args_list)
          self.assertLen(args, 2)  # there are 2 input data.
          self.assertEqual(args[0], args[1])
          self.assertTupleEqual(
              (
                  strategy,
                  1,
                  1e-10,
                  max_partitions_contributed,
                  pre_threshold,
              ),
              tuple(args[0])[0],
          )
  
imports: import sys
  import unittest
  from typing import List, Optional, Tuple
  from unittest.mock import patch
  import numpy
  import apache_beam
  import apache_beam.testing.test_pipeline
  import apache_beam.testing.util
  import pydp.algorithms.partition_selection
  from absl.testing import absltest
  from absl.testing import parameterized
  import pipeline_dp
  from pipeline_dp import aggregate_params
  from pipeline_dp import budget_accounting
  from pipeline_dp import dp_computations
  from pipeline_dp.budget_accounting import NaiveBudgetAccountant
  from pipeline_dp.pipeline_backend import PipelineBackend
  from pipeline_dp.pipeline_functions import collect_to_container
  from pipeline_dp.report_generator import ReportGenerator
label_desc: Use image node_id 20 for calling the DpEngineTest obj's underlying member method code with example usage: obj.test_select_private_partitions_internal(min_users, strategy, pre_threshold) without return types