code: def test_horizontal_projection_correctness(self, n_points, atol):
      base_point = self.data_generator.random_point(n_points)
      tangent_vec = self.data_generator.random_tangent_vec(base_point)
  
      horizontal = self.bundle.horizontal_projection(
          tangent_vec, base_point
      )
  
      result = gs.matmul(Matrices.transpose(base_point), horizontal)
      self.assertAllClose(result, Matrices.transpose(result), atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.geometry.matrices import Matrices
  from geomstats.test.random import KendalShapeRandomDataGenerator, get_random_times
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.base import LevelSetTestCase
  from geomstats.test_cases.geometry.fiber_bundle import FiberBundleTestCase
  from geomstats.test_cases.geometry.quotient_metric import QuotientMetricTestCase
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 6 for calling the PreShapeSpaceBundleTestCase obj's underlying member method code with example usage: obj.test_horizontal_projection_correctness(n_points, atol) without return types