code: def test_real_clean(self, device, dtype, data):
      # generate input data
      torch.random.manual_seed(0)
      data_dev = utils.dict_to(data, device, dtype)
      homography_gt = torch.inverse(data_dev["H_gt"])
      homography_gt = homography_gt / homography_gt[2, 2]
      pts_src = data_dev["pts0"]
      pts_dst = data_dev["pts1"]
      ransac = RANSAC("homography", inl_th=0.5, max_iter=20).to(
          device=device, dtype=dtype
      )
      # compute transform from source to target
      dst_homo_src, _ = ransac(pts_src, pts_dst)
  
      assert_close(
          transform_points(dst_homo_src[None], pts_src[None]),
          pts_dst[None],
          rtol=1e-2,
          atol=1.0,
      )
  
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia.testing
  from kornia.geometry import RANSAC, transform_points
  from kornia.geometry.epipolar import sampson_epipolar_distance
  from kornia.testing import assert_close
label_desc: Use image node_id 3 for calling the TestRANSACHomography obj's underlying member method code with example usage: obj.test_real_clean(device, dtype, data) without return types