code: def test_random_von_mises_fisher_sample_mean(
      self, n_samples, atol, random_mu=True, max_iter=100
  ):
      if random_mu:
          mu = self.space.random_point()
          expected = mu
      else:
          mu = None
          expected = gs.array([1.0] + [0.0] * self.space.dim)
  
      kappa = self._get_random_kappa()
  
      try:
          point = self.space.random_von_mises_fisher(
              n_samples=n_samples, mu=mu, kappa=kappa, max_iter=max_iter
          )
      except NotImplementedError:
          return
  
      sum_point = gs.sum(point, axis=0)
      res = sum_point / gs.linalg.norm(sum_point)
      self.assertAllClose(res, expected, atol=atol)
  
imports: import random
  import pytest
  import scipy
  import geomstats.backend
  from geomstats.learning.frechet_mean import FrechetMean
  from geomstats.test.random import EmbeddedSpaceRandomDataGenerator, HypersphereIntrinsicRandomDataGenerator
  from geomstats.test.test_case import TestCase
  from geomstats.test.vectorization import generate_vectorization_data
  from geomstats.test_cases.geometry.base import LevelSetTestCase
  from geomstats.test_cases.geometry.manifold import ManifoldTestCase
  from geomstats.vectorization import get_batch_shape
label_desc: Use image node_id 5 for calling the HypersphereExtrinsicTestCase obj's underlying member method code with example usage: obj.test_random_von_mises_fisher_sample_mean(n_samples, atol, random_mu, max_iter) without return types