docstr: Test horizontal and vertical projections.
  
  Check that horizontal and vertical parts of any tangent
  vector are orthogonal with respect to the SRVMetric inner
  product.
docstr_tok: ["Test","horizontal","and","vertical","projections",".","Check","that","horizontal","and","vertical","parts","of","any","tangent","vector","are","orthogonal","with","respect","to","the","SRVMetric","inner","product","."]
code: def test_tangent_vector_projections_orthogonality_with_metric(
      self, n_points, atol
  ):
      """Test horizontal and vertical projections.
  
      Check that horizontal and vertical parts of any tangent
      vector are orthogonal with respect to the SRVMetric inner
      product.
      """
      base_point = self.data_generator.random_point(n_points)
      tangent_vec = self.data_generator.random_tangent_vec(base_point)
  
      tangent_vec_hor = self.bundle.horizontal_projection(
          tangent_vec, base_point
      )
      tangent_vec_ver = self.bundle.vertical_projection(
          tangent_vec, base_point
      )
  
      res = self.total_space.metric.inner_product(
          tangent_vec_hor, tangent_vec_ver, base_point
      )
      expected_shape = get_batch_shape(
          self.total_space.point_ndim, base_point
      )
      expected = gs.zeros(expected_shape)
      self.assertAllClose(res, expected, atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.test_cases.geometry.fiber_bundle import FiberBundleTestCase
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 1 for calling the SRVTranslationReparametrizationBundleTestCase obj's underlying member method code with example usage: obj.test_tangent_vector_projections_orthogonality_with_metric(n_points, atol) without return types