code: def test_norm_shape(self, device, dtype, batch_size):
      q = Quaternion.random(batch_size, device, dtype)
      expected_shape = () if batch_size is None else (batch_size,)
      self.assert_close(tuple(q.norm().shape), expected_shape)
  
imports: import pytest
  import torch
  from kornia.geometry.quaternion import Quaternion
  from kornia.testing import assert_close
label_desc: Use image node_id 17 for calling the TestQuaternion obj's underlying member method code with example usage: obj.test_norm_shape(device, dtype, batch_size) without return types