code: def testBatesVariables(self):
      n0 = np.array([1.0, 2.0])
      l0 = np.array([0.0, 1.0])
      h0 = np.array([1.0, 11.0])
      n = tf.Variable(n0)
      l = tf.Variable(l0)
      h = tf.Variable(h0)
      d = bates.Bates(total_count=n, low=l, high=h, validate_args=True)
      self.evaluate([v.initializer for v in d.variables])
      self.evaluate(d.prob([0.5, 1.0]))
  
      self.evaluate(n.assign(-n0))
      with self.assertRaisesOpError("`total_count` must be positive."):
          self.evaluate(d.prob([0.5, 1.0]))
      self.evaluate(n.assign(n0))
      self.evaluate(d.prob([0.5, 1.0]))
  
      self.evaluate(n.assign(n0 / 2.0))
      with self.assertRaisesOpError(
          "`total_count` must be representable as a 32-bit integer."
      ):
          self.evaluate(d.prob([0.5, 1.0]))
      self.evaluate(n.assign(n0))
      self.evaluate(d.prob([0.5, 1.0]))
  
      self.evaluate(n.assign([1000.0, 2000.0]))
      with self.assertRaisesOpError(
          "`total_count` > .* is numerically unstable."
      ):
          self.evaluate(d.prob([0.5, 1.0]))
      self.evaluate(n.assign(n0))
      self.evaluate(d.prob([0.5, 1.0]))
  
      self.evaluate(l.assign(h0))
      with self.assertRaisesOpError("`low` must be less than `high`"):
          self.evaluate(d.prob([0.5, 1.0]))
      self.evaluate(l.assign(l0))
      self.evaluate(d.prob([0.5, 1.0]))
  
imports: import fractions
  import math
  import sys
  from absl.testing import parameterized
  import hypothesis
  import hypothesis.strategies
  import numpy
  import scipy
  import scipy.integrate
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import bates
  from tensorflow_probability.python.internal import hypothesis_testlib
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 9 for calling the BatesTest obj's underlying member method code with example usage: obj.testBatesVariables() without return types