code: def test_simple(self, device, dtype):
      P = torch.tensor(
          [
              [
                  [308.0, 139.0, 231.0, 84.0],
                  [481.0, 161.0, 358.0, 341.0],
                  [384.0, 387.0, 459.0, 102.0],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      K_expected = torch.tensor(
          [
              [
                  [17.006138, 122.441254, 390.211426],
                  [0.0, 228.743622, 577.167480],
                  [0.0, 0.0, 712.675232],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      R_expected = torch.tensor(
          [
              [
                  [0.396559, 0.511023, -0.762625],
                  [0.743249, -0.666318, -0.060006],
                  [0.538815, 0.543024, 0.644052],
              ]
          ],
          device=device,
          dtype=dtype,
      )
  
      t_expected = torch.tensor(
          [[[-6.477699], [1.129624], [0.143123]]],
          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 3 for calling the TestKRtFromProjection obj's underlying member method code with example usage: obj.test_simple(device, dtype) without return types