code: def test_imgaug_augmentations_for_keypoints_serialization(
      augmentation_cls, params, p, seed, image, keypoints, always_apply
  ):
      aug = augmentation_cls(p=p, always_apply=always_apply, **params)
      serialized_aug = A.to_dict(aug)
      deserialized_aug = A.from_dict(serialized_aug)
      set_seed(seed)
      ia.seed(seed)
      aug_data = aug(image=image, keypoints=keypoints)
      set_seed(seed)
      ia.seed(seed)
      deserialized_aug_data = deserialized_aug(
          image=image, keypoints=keypoints
      )
      assert np.array_equal(
          aug_data["image"], deserialized_aug_data["image"]
      )
      assert np.array_equal(
          aug_data["keypoints"], deserialized_aug_data["keypoints"]
      )
  
imports: import cv2
  import imgaug
  import numpy
  import pytest
  import albumentations
  from albumentations import Compose
  from albumentations.core.bbox_utils import convert_bboxes_from_albumentations, convert_bboxes_to_albumentations
  from albumentations.imgaug.transforms import IAAAdditiveGaussianNoise, IAAAffine, IAACropAndPad, IAAFliplr, IAAFlipud, IAAPerspective, IAAPiecewiseAffine, IAASharpen, IAASuperpixels
  from tests.utils import set_seed
label_desc: Use image node_id 10 for calling a global function with example usage: test_imgaug_augmentations_for_keypoints_serialization(augmentation_cls, params, p, seed, image, keypoints, always_apply) without return types