code: def test_connection_translation_map(self, n_points, atol):
      # TODO: simplify code or apply to other quantities
      # e.g. sectional_curvature, curvature, curvature derivative
      base_point = self.data_generator.random_point()
  
      x, y, z = self.space.metric.normal_basis(
          self.space.lie_algebra.basis
      )
      expected = 1.0 / 2**0.5 / 2.0 * z
  
      translation_map = self.space.tangent_translation_map(base_point)
      tan_a = translation_map(x)
      tan_b = translation_map(y)
  
      res = self.space.metric.connection(tan_a, tan_b, base_point)
      expected = translation_map(expected)
      self.assertAllClose(res, expected, atol=atol)
  
imports: import random
  import pytest
  import geomstats.backend
  from geomstats.geometry.invariant_metric import BiInvariantMetric, _InvariantMetricMatrix, _InvariantMetricVector
  from geomstats.geometry.special_euclidean import SpecialEuclidean
  from geomstats.geometry.special_orthogonal import SpecialOrthogonal
  from geomstats.test.parametrizers import DataBasedParametrizer
  from geomstats.test.random import RandomDataGenerator
  from geomstats.test_cases.geometry.invariant_metric import BiInvariantMetricTestCase, InvariantMetricMatrixTestCase, InvariantMetricVectorTestCase
  from .data.invariant_metric import BiInvariantMetricMatrixTestData, BiInvariantMetricVectorsSOTestData, InvariantMetricMatrixSETestData, InvariantMetricMatrixSO3TestData, InvariantMetricMatrixSOTestData, InvariantMetricVectorTestData
label_desc: Use image node_id 1 for calling the TestInvariantMetricMatrixSO3 obj's underlying member method code with example usage: obj.test_connection_translation_map(n_points, atol) without return types