code: def test_report_metrics(self):
      # given
      measurement_timestamp = self.reference_timestamp + 10
  
      # when
      metric_reports = self.metric_reporter.report(
          measurement_timestamp
      )
  
      # then
      expected_time = measurement_timestamp - self.reference_timestamp
      expected_reports = [
          MetricReport(
              metric=self.metrics_container.cpu_usage_metric,
              values=[
                  MetricValue(
                      timestamp=measurement_timestamp,
                      running_time=expected_time,
                      gauge_name="cpu",
                      value=self.fixture.cpu_gauge_value,
                  )
              ],
          ),
          MetricReport(
              metric=self.metrics_container.memory_metric,
              values=[
                  MetricValue(
                      timestamp=measurement_timestamp,
                      running_time=expected_time,
                      gauge_name="ram",
                      value=self.fixture.memory_gauge_value,
                  )
              ],
          ),
          MetricReport(
              metric=self.metrics_container.gpu_usage_metric,
              values=[
                  MetricValue(
                      timestamp=measurement_timestamp,
                      running_time=expected_time,
                      gauge_name="0",
                      value=self.fixture.gpu0_usage_gauge_value,
                  ),
                  MetricValue(
                      timestamp=measurement_timestamp,
                      running_time=expected_time,
                      gauge_name="2",
                      value=self.fixture.gpu1_usage_gauge_value,
                  ),
              ],
          ),
          MetricReport(
              metric=self.metrics_container.gpu_memory_metric,
              values=[
                  MetricValue(
                      timestamp=measurement_timestamp,
                      running_time=expected_time,
                      gauge_name="0",
                      value=self.fixture.gpu0_memory_gauge_value,
                  ),
                  MetricValue(
                      timestamp=measurement_timestamp,
                      running_time=expected_time,
                      gauge_name="2",
                      value=self.fixture.gpu1_memory_gauge_value,
                  ),
              ],
          ),
      ]
      self.assertListEqual(expected_reports, metric_reports)
  
file_path: neptune-client/tests/unit/neptune/legacy/internal/hardware/metrics/test_metric_reporter_integration.py
imports: import time
  import unittest
  from neptune.common.hardware.constants import BYTES_IN_ONE_GB
  from neptune.common.hardware.metrics.metrics_factory import MetricsFactory
  from neptune.common.hardware.metrics.reports.metric_report import MetricReport, MetricValue
  from neptune.common.hardware.metrics.reports.metric_reporter_factory import MetricReporterFactory
  from neptune.common.hardware.resources.system_resource_info import SystemResourceInfo
  from tests.unit.neptune.legacy.internal.hardware.gauges.gauges_fixture import GaugesFixture
label_desc: Use image node_id 2 for calling the TestMetricReporterIntegration obj's underlying member method code with example usage: obj.test_report_metrics() without return types