code: def test_estimate_coincide(self, n_samples, atol):
      mat_space = self.estimator.space
      X = mat_space.random_point(n_samples)
  
      res = self.estimator.fit(X).estimate_
  
      X_vec = mat_space.rotation_vector_from_matrix(X)
      res_vec = self.other_estimator.fit(X_vec).estimate_
      res_ = mat_space.matrix_from_rotation_vector(res_vec)
  
      self.assertAllClose(res, res_, atol=atol)
  
imports: import random
  import pytest
  from geomstats.geometry.discrete_curves import DiscreteCurvesStartingAtOrigin, ElasticTranslationMetric
  from geomstats.geometry.euclidean import Euclidean
  from geomstats.geometry.hyperboloid import Hyperboloid
  from geomstats.geometry.hypersphere import Hypersphere
  from geomstats.geometry.matrices import Matrices
  from geomstats.geometry.minkowski import Minkowski
  from geomstats.geometry.spd_matrices import SPDMatrices
  from geomstats.geometry.special_orthogonal import SpecialOrthogonal
  from geomstats.learning.frechet_mean import BatchGradientDescent, FrechetMean, GradientDescent
  from geomstats.test.parametrizers import DataBasedParametrizer
  from geomstats.test_cases.learning._base import BaseEstimatorTestCase
  from geomstats.test_cases.learning.frechet_mean import BatchGradientDescentTestCase, CircularMeanTestCase, ElasticMeanTestCase, FrechetMeanTestCase, VarianceTestCase
  from .data.frechet_mean import BatchGradientDescentTestData, CircularMeanTestData, FrechetMeanSOCoincideTestData, FrechetMeanTestData, LinearMeanEuclideaTestData, VarianceEuclideanTestData, VarianceTestData
label_desc: Use image node_id 1 for calling the TestFrechetMeanSOCoincide obj's underlying member method code with example usage: obj.test_estimate_coincide(n_samples, atol) without return types