code: def test_exp(self, device, dtype, batch_size):
      omega = torch.zeros(3, device=device, dtype=dtype)
      t = torch.rand(3, device=device, dtype=dtype)
      if batch_size is not None:
          omega = omega.repeat(batch_size, 1)
          t = t.repeat(batch_size, 1)
      s = Se3.exp(torch.cat((t, omega), -1))
      quat_expected = Quaternion.identity(batch_size, device, dtype)
      self.assert_close(s.r.q.data, quat_expected.data)
      self.assert_close(s.t, t)
  
imports: import pytest
  import torch
  from kornia.geometry.conversions import euler_from_quaternion, rotation_matrix_to_quaternion
  from kornia.geometry.liegroup import Se3, So3
  from kornia.geometry.quaternion import Quaternion
  from kornia.geometry.vector import Vector3
  from kornia.testing import BaseTester
label_desc: Use image node_id 15 for calling the TestSe3 obj's underlying member method code with example usage: obj.test_exp(device, dtype, batch_size) without return types