code: def test_compose_with_inverse_is_identity(self, n_points, atol):
      point = self.data_generator.random_point(n_points)
      inverse = self.space.inverse(point)
  
      identity = self.space.identity
      if n_points > 1:
          identity = gs.broadcast_to(
              identity, (n_points, *identity.shape)
          )
  
      identity_ = self.space.compose(point, inverse)
      self.assertAllClose(identity_, identity, atol=atol)
  
      identity_ = self.space.compose(inverse, point)
      self.assertAllClose(identity_, identity, atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.manifold import ManifoldTestCase
  from geomstats.test_cases.geometry.mixins import GroupExpTestCaseMixins
  from geomstats.vectorization import repeat_point
label_desc: Use image node_id 3 for calling the _LieGroupTestCaseMixins obj's underlying member method code with example usage: obj.test_compose_with_inverse_is_identity(n_points, atol) without return types