code: def test_normalize_shapes(norm, rndstate):
      """Test normalize shapes"""
      n_conds, n_matrices, n_channels = 15, 10, 3
  
      # test a 2d array, ie a single square matrix
      mat = rndstate.randn(n_channels, n_channels)
      mat_n = normalize(mat, norm)
      assert mat.shape == mat_n.shape
      # test a 3d array, ie a group of square matrices
      mat = rndstate.randn(n_matrices, n_channels, n_channels)
      mat_n = normalize(mat, norm)
      assert mat.shape == mat_n.shape
      # test a 4d array, ie a group of groups of square matrices
      mat = rndstate.randn(n_conds, n_matrices, n_channels, n_channels)
      mat_n = normalize(mat, norm)
      assert mat.shape == mat_n.shape
  
imports: from numpy.testing import assert_array_almost_equal
  import numpy
  from scipy.linalg import block_diag
  from scipy.signal import welch, csd, coherence
  from sklearn.covariance import empirical_covariance
  import pytest
  from pyriemann.utils.covariance import covariances, covariances_EP, covariances_X, eegtocov, cross_spectrum, cospectrum, coherence, normalize, get_nondiag_weight, block_covariances, _complex_estimator
  from pyriemann.utils.test import is_real, is_hermitian, is_sym_pos_def, is_herm_pos_def
label_desc: Use image node_id 15 for calling a global function with example usage: test_normalize_shapes(norm, rndstate) without return types