code: def testParetoSampleMultidimensionalMean(self):
      scale = np.array([np.arange(1, 21, dtype=np.float32)])
      concentration = 3.0
      dist = pareto.Pareto(concentration, scale, validate_args=True)
      n = int(2e5)
      samples = dist.sample(n, seed=test_util.test_seed())
      sample_values = self.evaluate(samples)
      self.assertEqual(samples.shape, (n, 1, 20))
      self.assertEqual(sample_values.shape, (n, 1, 20))
      self.assertAllClose(
          sample_values.mean(axis=0),
          self._scipy_pareto(concentration, scale).mean(),
          rtol=0.01,
          atol=0,
      )
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import kullback_leibler
  from tensorflow_probability.python.distributions import pareto
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 21 for calling the ParetoTest obj's underlying member method code with example usage: obj.testParetoSampleMultidimensionalMean() without return types