code: def test_report_params(self):
      expected_report = (
          "DPEngine method: test_method\n"
          "AggregateParams:\n"
          " metrics=['PRIVACY_ID_COUNT', 'COUNT', 'MEAN', 'SUM']\n"
          " noise_kind=gaussian\n"
          " budget_weight=1\n"
          " Contribution bounding:\n"
          "  max_partitions_contributed=2\n"
          "  max_contributions_per_partition=1\n"
          "  min_value=1\n"
          "  max_value=5\n"
          "Computation graph:\n"
          " 1. Stage1 \n"
          " 2. Stage2"
      )
      params = AggregateParams(
          noise_kind=pipeline_dp.NoiseKind.GAUSSIAN,
          max_partitions_contributed=2,
          max_contributions_per_partition=1,
          min_value=1,
          max_value=5,
          metrics=[
              Metrics.PRIVACY_ID_COUNT,
              Metrics.COUNT,
              Metrics.MEAN,
              Metrics.SUM,
          ],
      )
      report_generator = ReportGenerator(params, "test_method")
      report_generator.add_stage("Stage1 ")  # add string
      report_generator.add_stage(
          lambda: "Stage2"
      )  # add lambda returning str
      self.assertEqual(expected_report, report_generator.report())
  
file_path: pipelinedp/tests/report_generator_test.py
imports: import unittest
  import pipeline_dp
  from pipeline_dp.aggregate_params import AggregateParams, Metrics
  from pipeline_dp.report_generator import ReportGenerator
label_desc: Use image node_id 2 for calling the ReportGeneratorTest obj's underlying member method code with example usage: obj.test_report_params() without return types