code: def test_random(self, device, dtype, batch_size):
      s = So2.random(batch_size=batch_size, device=device, dtype=dtype)
      t = self._make_rand_data(device, dtype, (batch_size, 2))
      se2 = Se2(s, t)
      se2_in_se2 = se2.inverse() * se2
      i = Se2.identity(
          batch_size=batch_size, device=device, dtype=dtype
      )
      self.assert_close(se2_in_se2.so2.z.real, i.so2.z.real)
      self.assert_close(se2_in_se2.so2.z.imag, i.so2.z.imag)
      self.assert_close(se2_in_se2.t, i.t)
  
imports: import pytest
  import torch
  from kornia.geometry.liegroup import Se2, So2
  from kornia.geometry.vector import Vector2
  from kornia.testing import BaseTester
label_desc: Use image node_id 22 for calling the TestSe2 obj's underlying member method code with example usage: obj.test_random(device, dtype, batch_size) without return types