code: def testGradientWorksForMultivariateNormalTriL(self):
      # TODO(b/72831017): Remove this once bijector cacheing is fixed for
      # graph mode.
      if not tf.executing_eagerly():
          self.skipTest("Gradients get None values in graph mode.")
      d = mvn_tril.MultivariateNormalTriL(scale_tril=tf.eye(2))
      x = d.sample(seed=test_util.test_seed())
      fn_result, grads = util.maybe_call_fn_and_grads(d.log_prob, x)
      self.assertAllEqual(False, fn_result is None)
      self.assertAllEqual([False], [g is None for g in grads])
  
imports: import collections
  import warnings
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v2
  from tensorflow_probability.python.distributions import lognormal
  from tensorflow_probability.python.distributions import mvn_tril
  from tensorflow_probability.python.internal import test_util
  from tensorflow_probability.python.mcmc.internal import util
label_desc: Use image node_id 3 for calling the GradientTest obj's underlying member method code with example usage: obj.testGradientWorksForMultivariateNormalTriL() without return types