code: def _run_single_comparison_test(
      cls, fname, image_imgaug, image_imgcor, severity, seed
  ):
      image_imgaug_sum = np.sum(image_imgaug)
      image_imgcor_sum = np.sum(image_imgcor)
  
      image_aug, image_aug_exp = cls._generate_augmented_images(
          fname, image_imgaug, image_imgcor, severity, seed
      )
  
      # assert that the original image is unchanged,
      # i.e. it was not augmented in-place
      assert np.isclose(
          np.sum(image_imgcor), image_imgcor_sum, rtol=0, atol=1e-4
      )
      assert np.isclose(
          np.sum(image_imgaug), image_imgaug_sum, rtol=0, atol=1e-4
      )
  
      # assert that the functions returned numpy arrays and not PIL images
      assert ia.is_np_array(image_aug_exp)
      assert ia.is_np_array(image_aug)
  
      assert image_aug.shape == image_imgaug.shape
      assert image_aug.dtype.name == image_aug_exp.dtype.name
  
      atol = (
          1e-4  # set this to 0.5+1e-4 if output is converted to uint8
      )
      assert np.allclose(image_aug, image_aug_exp, rtol=0, atol=atol)
  
imports: from __future__ import print_function, division, absolute_import
  import sys
  import functools
  import numpy
  import imgaug
  from imgaug import augmenters
  from imgaug import random
  from imgaug import parameters
  from imgaug.testutils import runtest_pickleable_uint8_img
label_desc: Use image node_id 3 for calling the _CompareFuncWithImageCorruptions obj's underlying member method code with example usage: obj._run_single_comparison_test(cls, fname, image_imgaug, image_imgcor, severity, seed) without return types