code: def test_krt_from_projection(self, device, dtype):
      P = torch.tensor(
          [
              [
                  [10.0, 0.0, 30.0, 100.0],
                  [0.0, 20.0, 40.0, 160.0],
                  [0.0, 0.0, 1.0, 3.0],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      K_expected = torch.tensor(
          [[[10.0, 0.0, 30.0], [0.0, 20.0, 40.0], [0.0, 0.0, 1.0]]],
          device=device,
          dtype=dtype,
      )
  
      R_expected = torch.tensor(
          [[[1.0, 0.0, 0.0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0]]],
          device=device,
          dtype=dtype,
      )
  
      t_expected = torch.tensor(
          [[[1.0], [2.0], [3.0]]], device=device, dtype=dtype
      )
  
      K_estimated, R_estimated, t_estimated = epi.KRt_from_projection(P)
      assert_close(K_estimated, K_expected, atol=1e-4, rtol=1e-4)
      assert_close(R_estimated, R_expected, atol=1e-4, rtol=1e-4)
      assert_close(t_estimated, t_expected, atol=1e-4, rtol=1e-4)
  
imports: import pytest
  import torch
  from torch.autograd import gradcheck
  import kornia.geometry.epipolar
  from kornia.testing import assert_close
label_desc: Use image node_id 4 for calling the TestProjectionFromKRt obj's underlying member method code with example usage: obj.test_krt_from_projection(device, dtype) without return types