code: def test_grid_dropout_params(
      ratio,
      holes_number_x,
      holes_number_y,
      unit_size_min,
      unit_size_max,
      shift_x,
      shift_y,
  ):
      img = np.random.randint(0, 256, [256, 320], np.uint8)
  
      aug = A.GridDropout(
          ratio=ratio,
          unit_size_min=unit_size_min,
          unit_size_max=unit_size_max,
          holes_number_x=holes_number_x,
          holes_number_y=holes_number_y,
          shift_x=shift_x,
          shift_y=shift_y,
          random_offset=False,
          fill_value=0,
          p=1,
      )
      result = aug(image=img)["image"]
      # with fill_value = 0 the sum of pixels is smaller
      assert result.sum() < img.sum()
      assert result.shape == img.shape
      params = aug.get_params_dependent_on_targets({"image": img})
      holes = params["holes"]
      assert len(holes[0]) == 4
      # check grid offsets
      if shift_x:
          assert holes[0][0] == shift_x
      else:
          assert holes[0][0] == 0
      if shift_y:
          assert holes[0][1] == shift_y
      else:
          assert holes[0][1] == 0
      # for grid set with limits
      if unit_size_min and unit_size_max:
          assert (
              max(1, unit_size_min * ratio)
              <= (holes[0][2] - holes[0][0])
              <= min(max(1, unit_size_max * ratio), 256)
          )
      elif holes_number_x and holes_number_y:
          assert (holes[0][2] - holes[0][0]) == max(
              1, int(ratio * 320 // holes_number_x)
          )
          assert (holes[0][3] - holes[0][1]) == max(
              1, int(ratio * 256 // holes_number_y)
          )
  
imports: import random
  from functools import partial
  import cv2
  import numpy
  import pytest
  import albumentations
  import albumentations.augmentations.functional
  import albumentations.augmentations.geometric.functional
  from albumentations.augmentations.blur.functional import gaussian_blur
  from .utils import get_dual_transforms, get_image_only_transforms, get_transforms
label_desc: Use image node_id 30 for calling a global function with example usage: test_grid_dropout_params(ratio, holes_number_x, holes_number_y, unit_size_min, unit_size_max, shift_x, shift_y) without return types