class_docstr: Tests the correctness of the FillScaleTriL bijector.
code: def testInvertible(self):
      # Generate random inputs from an unconstrained space, with
      # event size 6 to specify 3x3 triangular matrices.
      batch_shape = [2, 1]
      x = np.random.randn(*(batch_shape + [6])).astype(np.float32)
      b = fill_scale_tril.FillScaleTriL(
          diag_bijector=softplus.Softplus(), diag_shift=3.14159
      )
      y = self.evaluate(b.forward(x))
      self.assertAllEqual(y.shape, batch_shape + [3, 3])
  
      x_ = self.evaluate(b.inverse(y))
      self.assertAllClose(x, x_, rtol=1e-4)
  
      fldj = self.evaluate(b.forward_log_det_jacobian(x, event_ndims=1))
      ildj = self.evaluate(b.inverse_log_det_jacobian(y, event_ndims=2))
      self.assertAllClose(fldj, -ildj, rtol=1e-4)
  
file_path: probability/tensorflow_probability/python/bijectors/fill_scale_tril_test.py
imports: import numpy
  from tensorflow_probability.python.bijectors import exp
  from tensorflow_probability.python.bijectors import fill_scale_tril
  from tensorflow_probability.python.bijectors import softplus
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 2 for calling the FillScaleTriLBijectorTest obj's underlying member method code with example usage: obj.testInvertible() without return types