code: def test_value(self, input_data, expected_value):
      if len(input_data) == 3:
          [seg_1, seg_2, metric] = input_data
          spacing = None
      else:
          [seg_1, seg_2, metric, spacing] = input_data
  
      ct = 0
      seg_1 = torch.tensor(seg_1, device=_device)
      seg_2 = torch.tensor(seg_2, device=_device)
      for symmetric in [True, False]:
          sur_metric = SurfaceDistanceMetric(
              include_background=False,
              symmetric=symmetric,
              distance_metric=metric,
          )
          # shape of seg_1, seg_2 are: HWD, converts to BNHWD
          batch, n_class = 2, 3
          batch_seg_1 = (
              seg_1.unsqueeze(0)
              .unsqueeze(0)
              .repeat([batch, n_class, 1, 1, 1])
          )
          batch_seg_2 = (
              seg_2.unsqueeze(0)
              .unsqueeze(0)
              .repeat([batch, n_class, 1, 1, 1])
          )
          sur_metric(batch_seg_1, batch_seg_2, spacing=spacing)
          result = sur_metric.aggregate()
          expected_value_curr = expected_value[ct]
          np.testing.assert_allclose(
              expected_value_curr, result.cpu(), rtol=1e-5
          )
          np.testing.assert_equal(result.device, seg_1.device)
          ct += 1
  
file_path: MONAI/tests/test_surface_distance.py
imports: from __future__ import annotations
  import unittest
  import numpy
  import torch
  from parameterized import parameterized
  from monai.metrics import SurfaceDistanceMetric
label_desc: Use image node_id 1 for calling the TestAllSurfaceMetrics obj's underlying member method code with example usage: obj.test_value(input_data, expected_value) without return types