code: def test_gradcheck(self, device, dtype):
      # generate input data
      batch_size, num_points, num_dims = 2, 3, 2
      eye_size = num_dims + 1
      points_src = torch.rand(
          batch_size, num_points, num_dims, device=device, dtype=dtype
      )
      dst_homo_src = utils.create_random_homography(
          batch_size, eye_size
      ).to(device=device, dtype=dtype)
      # evaluate function gradient
      points_src = utils.tensor_to_gradcheck_var(points_src)  # to var
      dst_homo_src = utils.tensor_to_gradcheck_var(
          dst_homo_src
      )  # to var
      assert gradcheck(
          kornia.geometry.transform_points,
          (dst_homo_src, points_src),
          raise_exception=True,
          fast_mode=True,
      )
  
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.geometry.linalg
  import kornia.testing
  from kornia.testing import BaseTester, assert_close
label_desc: Use image node_id 2 for calling the TestTransformPoints obj's underlying member method code with example usage: obj.test_gradcheck(device, dtype) without return types