code: def testNormalInverseGaussianSampleMultidimensionalVariance(self):
      loc_v = (
          np.linspace(-10.0, 10.0, 5)
          .astype(self.dtype)
          .reshape((5, 1, 1))
      )
      scale_v = (
          np.linspace(1.0, 3.0, 3).astype(self.dtype).reshape((3, 1))
      )
      tailweight_v = np.array([2.0, 0.5], dtype=self.dtype)
      skewness_v = 0.5 * tailweight_v
      n = int(3e5)
      normal_inverse_gaussian = nig.NormalInverseGaussian(
          loc_v, scale_v, tailweight_v, skewness_v, validate_args=True
      )
      samples = normal_inverse_gaussian.sample(
          n, seed=test_util.test_seed()
      )
      sample_values = self.evaluate(samples)
  
      self.assertEqual(sample_values.shape, (n, 5, 3, 2))
      self.assertAllClose(
          sample_values.var(axis=0),
          self.evaluate(normal_inverse_gaussian.variance()),
          rtol=0.05,
          atol=0,
      )
  
imports: import numpy
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import normal_inverse_gaussian
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 11 for calling the _NormalInverseGaussianTest obj's underlying member method code with example usage: obj.testNormalInverseGaussianSampleMultidimensionalVariance() without return types