code: def test_cpu(
      self, test_case_description, sigmas, input, features, expected
  ):
      # Create input tensors
      input_tensor = torch.from_numpy(np.array(input)).to(
          dtype=torch.float, device=torch.device("cpu")
      )
      feature_tensor = torch.from_numpy(np.array(features)).to(
          dtype=torch.float, device=torch.device("cpu")
      )
  
      # apply filter
      output = (
          PHLFilter.apply(input_tensor, feature_tensor, sigmas)
          .cpu()
          .numpy()
      )
  
      # Ensure result are as expected
      np.testing.assert_allclose(output, expected, atol=1e-4)
  
file_path: MONAI/tests/test_phl_cpu.py
imports: from __future__ import annotations
  import unittest
  import numpy
  import torch
  from parameterized import parameterized
  from monai.networks.layers.filtering import PHLFilter
  from tests.utils import skip_if_no_cpp_extension
label_desc: Use image node_id 1 for calling the PHLFilterTestCaseCpu obj's underlying member method code with example usage: obj.test_cpu(test_case_description, sigmas, input, features, expected) without return types