code: def test_dirty_points_and_gradcheck(self, batch_size, device, dtype):
      # generate input data
      points_src = torch.rand(
          batch_size, 10, 2, device=device, dtype=dtype
      )
      H = kornia.eye_like(3, points_src)
      H = H * (1 + torch.rand_like(H))
      H = H / H[:, 2:3, 2:3]
  
      points_src = 100.0 * torch.rand(
          batch_size, 20, 2, device=device, dtype=dtype
      )
      points_dst = kornia.geometry.transform_points(H, points_src)
  
      # making last point an outlier
      points_dst[:, -1, :] += 20
  
      weights = torch.ones(batch_size, 20, device=device, dtype=dtype)
  
      # compute transform from source to target
      dst_homo_src = find_homography_dlt_iterated(
          points_src, points_dst, weights, 0.5, 10
      )
  
      assert_close(
          kornia.geometry.transform_points(
              dst_homo_src, points_src[:, :-1]
          ),
          points_dst[:, :-1],
          rtol=1e-3,
          atol=1e-3,
      )
  
imports: import sys
  import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.testing
  from kornia.geometry.homography import find_homography_dlt, find_homography_dlt_iterated, find_homography_lines_dlt, find_homography_lines_dlt_iterated, line_segment_transfer_error_one_way, oneway_transfer_error, sample_is_valid_for_homography, symmetric_transfer_error
  from kornia.testing import assert_close
  from kornia.utils._compat import torch_version_le
label_desc: Use image node_id 5 for calling the TestFindHomographyDLTIter obj's underlying member method code with example usage: obj.test_dirty_points_and_gradcheck(batch_size, device, dtype) without return types