code: def test_observe_single_dimensions(self):
      observer = measurement_metrics.MeasurementObserver()
      observer.observe_first(env=_FAKE_ENV, timestep=_TIMESTEP)
      single_obs_timestep = copy.deepcopy(_TIMESTEP)
      single_obs_timestep.observation = [1000.0, -50.0]
  
      observer.observe(
          env=_FAKE_ENV,
          timestep=single_obs_timestep,
          action=np.array([[1, 2], [3, 4]]),
      )
  
      np.testing.assert_equal(
          {
              "measurement[0]_max": 1000.0,
              "measurement[0]_min": 1000.0,
              "measurement[0]_mean": 1000.0,
              "measurement[0]_p25": 1000.0,
              "measurement[0]_p50": 1000.0,
              "measurement[0]_p75": 1000.0,
              "measurement[1]_max": -50.0,
              "measurement[1]_mean": -50.0,
              "measurement[1]_p25": -50.0,
              "measurement[1]_p50": -50.0,
              "measurement[1]_p75": -50.0,
              "measurement[1]_min": -50.0,
          },
          observer.get_metrics(),
      )
  
file_path: acme/acme/utils/observers/measurement_metrics_test.py
imports: import copy
  from unittest import mock
  from acme import specs
  from acme.testing import fakes
  from acme.utils.observers import measurement_metrics
  import dm_env
  import numpy
  from absl.testing import absltest
label_desc: Use image node_id 7 for calling the MeasurementMetricsTest obj's underlying member method code with example usage: obj.test_observe_single_dimensions() without return types