code: def test_upper_and_unupper(kind, get_mats):
      """Test upper then unupper should be identity"""
      n_matrices, n_channels = 7, 3
      mats = get_mats(n_matrices, n_channels, kind)
      assert unupper(upper(mats)) == approx(mats)
  
      n_sets = 2
      mats_4d = np.asarray([mats for _ in range(n_sets)])
      assert unupper(upper(mats_4d)) == approx(mats_4d)
  
file_path: pyRiemann/tests/test_utils_tangent_space.py
imports: from conftest import get_metrics
  import numpy
  import pytest
  from pytest import approx
  from pyriemann.utils.distance import distance_riemann
  from pyriemann.utils.tangentspace import exp_map_euclid, exp_map_logeuclid, exp_map_riemann, log_map_euclid, log_map_logeuclid, log_map_riemann, upper, unupper, tangent_space, untangent_space, transport
label_desc: Use image node_id 4 for calling a global function with example usage: test_upper_and_unupper(kind, get_mats) without return types