code: def test_pow(self, device, dtype, batch_size):
      q = Quaternion.random(batch_size, device, dtype)
      q1 = Quaternion.identity(batch_size, device, dtype)
      self.assert_close(q**0, q1)
      self.assert_close(q**1, q)
      self.assert_close(q**2, q * q)
      self.assert_close(q**-1, q.inv())
      self.assert_close((q**0.5) * (q**0.5), q)
      self.assert_close((q1**1), q1)
      self.assert_close((q1**2), q1)
  
imports: import pytest
  import torch
  from kornia.geometry.quaternion import Quaternion
  from kornia.testing import assert_close
label_desc: Use image node_id 12 for calling the TestQuaternion obj's underlying member method code with example usage: obj.test_pow(device, dtype, batch_size) without return types