code: def _test_very_roughly(cls, nb_channels):
      if nb_channels is None:
          img = np.zeros((100, 100), dtype=np.uint8)
      else:
          img = np.zeros((100, 100, nb_channels), dtype=np.uint8)
      imgs_aug = iaa.Clouds().augment_images([img] * 5)
      assert 20 < np.average(imgs_aug) < 250
      assert np.max(imgs_aug) > 150
  
      for img_aug in imgs_aug:
          img_aug_f32 = img_aug.astype(np.float32)
          grad_x = img_aug_f32[:, 1:] - img_aug_f32[:, :-1]
          grad_y = img_aug_f32[1:, :] - img_aug_f32[:-1, :]
  
          assert np.sum(np.abs(grad_x)) > 5 * img.shape[1]
          assert np.sum(np.abs(grad_y)) > 5 * img.shape[0]
  
imports: from __future__ import print_function, division, absolute_import
  import sys
  import numpy
  import cv2
  import imgaug
  from imgaug import augmenters
  from imgaug import parameters
  from imgaug.testutils import reseed, runtest_pickleable_uint8_img, is_parameter_instance
label_desc: Use image node_id 2 for calling the TestClouds obj's underlying member method code with example usage: obj._test_very_roughly(cls, nb_channels) without return types