code: def test_ornt_meta(
      self,
      init_param,
      img: torch.Tensor,
      affine: torch.Tensor,
      expected_data: torch.Tensor,
      expected_code: str,
      device,
  ):
      img = MetaTensor(img, affine=affine).to(device)
      ornt = Orientation(**init_param)
      call_param = {"data_array": img}
      res = ornt(**call_param)  # type: ignore[arg-type]
      if img.ndim in (3, 4):
          test_resampler_lazy(ornt, res, init_param, call_param)
  
      assert_allclose(res, expected_data.to(device))
      new_code = nib.orientations.aff2axcodes(res.affine.cpu(), labels=ornt.labels)  # type: ignore
      self.assertEqual("".join(new_code), expected_code)
  
file_path: MONAI/tests/test_orientation.py
imports: from __future__ import annotations
  import unittest
  import nibabel
  import numpy
  import torch
  from parameterized import parameterized
  from monai.data.meta_obj import set_track_meta
  from monai.data.meta_tensor import MetaTensor
  from monai.transforms import Orientation, create_rotate, create_translate
  from tests.lazy_transforms_utils import test_resampler_lazy
  from tests.utils import TEST_DEVICES, assert_allclose
label_desc: Use image node_id 1 for calling the TestOrientationCase obj's underlying member method code with example usage: obj.test_ornt_meta(init_param, img, affine, expected_data, expected_code, device) without return types