code: def testBetaQuotientSample(self):
      a = tf.random.uniform(
          shape=[2, 1, 1, 1],
          minval=1.0,
          maxval=5.0,
          seed=test_util.test_seed(),
          dtype=self.dtype,
      )
      b = tf.random.uniform(
          shape=[1, 3, 1, 1],
          minval=1.0,
          maxval=5.0,
          seed=test_util.test_seed(),
          dtype=self.dtype,
      )
      c = tf.random.uniform(
          shape=[1, 1, 5, 1],
          minval=1.0,
          maxval=5.0,
          seed=test_util.test_seed(),
          dtype=self.dtype,
      )
      d = tf.random.uniform(
          shape=[1, 1, 1, 7],
          minval=1.0,
          maxval=5.0,
          seed=test_util.test_seed(),
          dtype=self.dtype,
      )
      dist = beta_quotient.BetaQuotient(a, b, c, d, validate_args=True)
      # TODO(b/179283344): Increase this to 3e5 when CPU-only gamma sampler is
      # fixed.
      n = int(3e4)
      samples = dist.sample(n, seed=test_util.test_seed())
      sample_values = self.evaluate(samples)
      self.assertEqual(sample_values.shape, (n, 2, 3, 5, 7))
      self.assertFalse(np.any(sample_values < 0.0))
      self.evaluate(
          st.assert_true_mean_equal_by_dkwm(
              samples,
              low=self.dtype(0.0),
              high=self.dtype(np.inf),
              expected=dist.mean(),
              false_fail_rate=self.dtype(1e-6),
          )
      )
  
imports: import numpy
  from scipy import special
  from scipy import stats
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import beta_quotient
  from tensorflow_probability.python.distributions.internal import statistical_testing
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.math import gradient
label_desc: Use image node_id 7 for calling the _BetaQuotientTest obj's underlying member method code with example usage: obj.testBetaQuotientSample() without return types