code: def test_undefined_block_dims_raises(self):
      op = trainable_linear_operators.build_trainable_linear_operator_block(
          operators=(
              (tf.linalg.LinearOperatorIdentity(2),),
              (
                  tf.linalg.LinearOperatorZeros(
                      3,
                      2,
                      is_square=False,
                      is_self_adjoint=False,
                      dtype=tf.float32,
                  ),
                  tf.linalg.LinearOperatorDiag(
                      tf.Variable(tf.ones((2, 3), dtype=tf.float32)),
                      is_non_singular=True,
                  ),
              ),
          )
      )
      self.evaluate([v.initializer for v in op.trainable_variables])
      self.assertAllEqual(self.evaluate(op.shape_tensor()), [2, 5, 5])
      self.assertLen(op.trainable_variables, 1)
  
      operators = (
          tf.linalg.LinearOperatorIdentity(2),
          tf.linalg.LinearOperatorDiag,
      )
      with self.assertRaisesRegexp(
          ValueError, "`block_dims` must be defined"
      ):
          trainable_linear_operators.build_trainable_linear_operator_block(
              operators
          )
  
imports: import functools
  from absl.testing import parameterized
  import numpy
  import tensorflow.compat.v1
  import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import scale_matvec_linear_operator
  from tensorflow_probability.python.experimental.util import deferred_module
  from tensorflow_probability.python.experimental.vi.util import trainable_linear_operators
  from tensorflow_probability.python.internal import samplers
  from tensorflow_probability.python.internal import test_util
label_desc: Use image node_id 8 for calling the TrainableLinearOperators obj's underlying member method code with example usage: obj.test_undefined_block_dims_raises() without return types