code: def test_summary_dict(self) -> None:
      metric = Metric(name="m1", lower_is_better=False)
      self.assertDictEqual(
          metric.summary_dict,
          {
              "name": "m1",
              "type": "Metric",
              "lower_is_better": False,
          },
      )
  
      metric = TestMetric(name="m2", lower_is_better=True)
      self.assertDictEqual(
          metric.summary_dict,
          {
              "name": "m2",
              "type": "TestMetric",
              "lower_is_better": True,
          },
      )
  
file_path: Ax/ax/core/tests/test_metric.py
imports: from ax.core.metric import Metric, MetricFetchE
  from ax.utils.common.result import Err
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_branin_metric, get_data, get_experiment, get_factorial_metric
label_desc: Use image node_id 10 for calling the MetricTest obj's underlying member method code with example usage: obj.test_summary_dict() without return types