code: def test_inner_product(self, n_points, atol):
      base_point = self.data_generator.random_point(n_points)
      tangent_vec_a = self.data_generator.random_tangent_vec(base_point)
      tangent_vec_b = self.data_generator.random_tangent_vec(base_point)
  
      axis = -(self.other_space.point_ndim + 1)
      tangent_vec_a_ = gs.expand_dims(tangent_vec_a, axis=axis)
      tangent_vec_b_ = gs.expand_dims(tangent_vec_b, axis=axis)
      base_point_ = gs.expand_dims(base_point, axis=axis)
  
      res = self.space.metric.inner_product(
          tangent_vec_a_, tangent_vec_b_, base_point_
      )
      other_res = self.other_space.metric.inner_product(
          tangent_vec_a, tangent_vec_b, base_point
      )
      self.assertAllClose(res, other_res, atol=atol)
  
file_path: geomstats/geomstats/test_cases/geometry/nfold_manifold.py
imports: import pytest
  import geomstats.backend
  from geomstats.test.random import NFoldManifoldRandomDataGenerator, RandomDataGenerator
  from geomstats.test.test_case import TestCase
  from geomstats.test_cases.geometry.manifold import ManifoldTestCase
  from geomstats.test_cases.geometry.mixins import ProjectionTestCaseMixins
  from geomstats.test_cases.geometry.riemannian_metric import RiemannianMetricTestCase
label_desc: Use image node_id 2 for calling the NFoldMetricScalesTestCase obj's underlying member method code with example usage: obj.test_inner_product(n_points, atol) without return types