code: def test_parallel_transport_ivp_transported_is_tangent(
      self, n_points, atol
  ):
      base_point = self.data_generator.random_point(n_points)
      direction = self.data_generator.random_tangent_vec(base_point)
      tangent_vec = self.data_generator.random_tangent_vec(base_point)
  
      transported = self.space.metric.parallel_transport(
          tangent_vec, base_point, direction=direction
      )
  
      end_point = self.space.metric.exp(direction, base_point)
  
      res = self.space.is_tangent(transported, end_point, atol=atol)
  
      expected_shape = get_batch_shape(
          self.space.point_ndim, base_point
      )
      expected = gs.ones(expected_shape, dtype=bool)
  
      self.assertAllEqual(res, expected)
  
imports: import math
  import pytest
  import geomstats.backend
  from geomstats.test.random import RandomDataGenerator, get_random_times
  from geomstats.test.test_case import TestCase
  from geomstats.test.utils import IdentityPointTransformer
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 27 for calling the ConnectionTestCase obj's underlying member method code with example usage: obj.test_parallel_transport_ivp_transported_is_tangent(n_points, atol) without return types