code: def test_ConvertMetricNames(self) -> None:
      transform = ConvertMetricNames(
          None, observations=self.observations, config=self.tconfig
      )
  
      transformed_observations = convert_mt_observations(
          self.observations, self.experiment
      )
      transformed_observation_data = [
          o.data for o in transformed_observations
      ]
  
      # All trials should have canonical name "m1"
      for obsd in transformed_observation_data:
          self.assertEqual(obsd.metric_names[0], "m1")
  
      # By default untransform does nothing
      untransformed_observations = transform.untransform_observations(
          transformed_observations
      )
      self.assertEqual(
          transformed_observations, untransformed_observations
      )
  
      transform.perform_untransform = True
      untransformed_observations = transform.untransform_observations(
          transformed_observations
      )
  
      # Should have original metric_name
      for i in range(len(self.observations)):
          metric_name = (
              "m1"
              if self.observation_features[i].trial_index == 0
              else "m2"
          )
          self.assertEqual(
              untransformed_observations[i].data.metric_names[0],
              metric_name,
          )
  
file_path: Ax/ax/modelbridge/transforms/tests/test_convert_metric_names_transform.py
imports: from copy import copy
  from ax.core.observation import observations_from_data
  from ax.modelbridge.transforms.convert_metric_names import convert_mt_observations, ConvertMetricNames, tconfig_from_mt_experiment
  from ax.utils.common.testutils import TestCase
  from ax.utils.testing.core_stubs import get_multi_type_experiment
label_desc: Use image node_id 2 for calling the ConvertMetricNamesTest obj's underlying member method code with example usage: obj.test_ConvertMetricNames() without return types