code: def test_gradcheck(self, device, dtype):
      # TODO: point [0, 0, 0] crashes
      points_3d = torch.ones(1, 3, device=device, dtype=dtype)
      camera_matrix = torch.eye(3, device=device, dtype=dtype).expand(
          1, -1, -1
      )
  
      # evaluate function gradient
      points_3d = tensor_to_gradcheck_var(points_3d)
      camera_matrix = tensor_to_gradcheck_var(camera_matrix)
      assert gradcheck(
          kornia.geometry.camera.project_points,
          (points_3d, camera_matrix),
          raise_exception=True,
          fast_mode=True,
      )
  
imports: import torch
  from torch.autograd import gradcheck
  import kornia
  from kornia.testing import assert_close, tensor_to_gradcheck_var
label_desc: Use image node_id 5 for calling the TestProjectPoints obj's underlying member method code with example usage: obj.test_gradcheck(device, dtype) without return types