code: def test_shape_value(
      self,
      data_shape,
      filenames,
      expected_shape,
      meta_shape,
      reverse=True,
  ):
      test_image = np.random.randint(0, 256, size=data_shape)
      with tempfile.TemporaryDirectory() as tempdir:
          for i, name in enumerate(filenames):
              filenames[i] = os.path.join(tempdir, name)
              Image.fromarray(test_image.astype("uint8")).save(
                  filenames[i]
              )
          reader = PILReader(mode="r", reverse_indexing=reverse)
          result = reader.get_data(reader.read(filenames))
          # load image by PIL and compare the result
          test_image = np.asarray(Image.open(filenames[0]))
  
      self.assertTupleEqual(
          tuple(result[1]["spatial_shape"]), meta_shape
      )
      self.assertTupleEqual(result[0].shape, expected_shape)
      if reverse:
          test_image = np.moveaxis(test_image, 0, 1)
      if result[0].shape == test_image.shape:
          np.testing.assert_allclose(result[0], test_image)
      else:
          np.testing.assert_allclose(
              result[0], np.tile(test_image, [result[0].shape[0], 1, 1])
          )
  
file_path: MONAI/tests/test_pil_reader.py
imports: from __future__ import annotations
  import os
  import tempfile
  import unittest
  import numpy
  from parameterized import parameterized
  from PIL import Image
  from monai.data import PILReader
label_desc: Use image node_id 1 for calling the TestPNGReader obj's underlying member method code with example usage: obj.test_shape_value(data_shape, filenames, expected_shape, meta_shape, reverse) without return types