code: def test_ball_to_half_space_tangent(
      self, tangent_vec, base_point, expected, atol
  ):
      res = self.space.ball_to_half_space_tangent(
          tangent_vec, base_point
      )
      self.assertAllClose(res, expected, atol=atol)
  
imports: import pytest
  import geomstats.backend
  from geomstats.geometry.hyperbolic import Hyperbolic
  from geomstats.test.test_case import TestCase
  from geomstats.test.utils import PointTransformer
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.riemannian_metric import RiemannianMetricTestCase
label_desc: Use image node_id 8 for calling the HyperbolicCoordsTransformTestCase obj's underlying member method code with example usage: obj.test_ball_to_half_space_tangent(tangent_vec, base_point, expected, atol) without return types