code: def test_two_view(self, device, dtype):
      scene = utils.generate_two_view_random_scene(device, dtype)
  
      E_mat = epi.essential_from_Rt(
          scene["R1"], scene["t1"], scene["R2"], scene["t2"]
      )
  
      R, t = epi.relative_camera_motion(
          scene["R1"], scene["t1"], scene["R2"], scene["t2"]
      )
      t = torch.nn.functional.normalize(t, dim=1)
  
      R_hat, t_hat, _ = epi.motion_from_essential_choose_solution(
          E_mat, scene["K1"], scene["K2"], scene["x1"], scene["x2"]
      )
  
      assert_close(t, t_hat)
      assert_close(R, R_hat, rtol=1e-4, atol=1e-4)
  
imports: import pytest
  import test_common
  import torch
  from torch.autograd import gradcheck
  import kornia
  import kornia.geometry.epipolar
  from kornia.testing import assert_close
label_desc: Use image node_id 5 for calling the TestMotionFromEssentialChooseSolution obj's underlying member method code with example usage: obj.test_two_view(device, dtype) without return types