code: def check_match(self, in1, in2):
      if isinstance(in1, dict):
          self.assertTrue(isinstance(in2, dict))
          for (k1, v1), (k2, v2) in zip(in1.items(), in2.items()):
              if isinstance(k1, Enum) and isinstance(k2, Enum):
                  k1, k2 = k1.value, k2.value
              self.check_match(k1, k2)
              # Transform ids won't match for windows with multiprocessing, so don't check values
              if k1 == TraceKeys.ID and sys.platform in [
                  "darwin",
                  "win32",
              ]:
                  continue
              if not (
                  isinstance(k1, str) and k1.endswith("_transforms")
              ):
                  self.check_match(
                      v1, v2
                  )  # transform stack not necessarily match
      elif isinstance(in1, (list, tuple)):
          for l1, l2 in zip(in1, in2):
              self.check_match(l1, l2)
      elif isinstance(in1, (str, int)):
          self.assertEqual(in1, in2)
      elif isinstance(in1, (torch.Tensor, np.ndarray)):
          np.testing.assert_array_equal(in1, in2)
      else:
          raise RuntimeError(
              f"Not sure how to compare types. type(in1): {type(in1)}, type(in2): {type(in2)}"
          )
  
imports: from __future__ import annotations
  import sys
  import unittest
  from enum import Enum
  import numpy
  import torch
  from parameterized import parameterized
  from monai.data import CacheDataset, DataLoader, Dataset, create_test_image_2d
  from monai.data.utils import decollate_batch
  from monai.transforms import Compose, EnsureChannelFirst, EnsureChannelFirstd, LoadImage, LoadImaged, RandAffine, RandFlip, RandFlipd, RandRotate90, SpatialPad, SpatialPadd, ToTensor, ToTensord
  from monai.transforms.inverse_batch_transform import Decollated
  from monai.transforms.spatial.dictionary import RandAffined, RandRotate90d
  from monai.utils import optional_import, set_determinism
  from monai.utils.enums import PostFix, TraceKeys
  from tests.utils import make_nifti_image
label_desc: Use image node_id 3 for calling the TestDeCollate obj's underlying member method code with example usage: obj.check_match(in1, in2) without return types