class_docstr: Most tests done in the base class LinearOperatorDerivedClassTest.
class_docstr_tok: ["Most","tests","done","in","the","base","class","LinearOperatorDerivedClassTest","."]
code: def test_incompatible_input_blocks_raises(self):
      matrix_1 = array_ops.placeholder_with_default(
          rng.rand(4, 4), shape=None
      )
      matrix_2 = array_ops.placeholder_with_default(
          rng.rand(3, 3), shape=None
      )
      operators = [
          linalg.LinearOperatorFullMatrix(matrix_1, is_square=True),
          linalg.LinearOperatorFullMatrix(matrix_2, is_square=True),
      ]
      operator = block_diag.LinearOperatorBlockDiag(operators)
      x = np.random.rand(2, 4, 5).tolist()
      msg = (
          "dimension does not match"
          if context.executing_eagerly()
          else "input structure is ambiguous"
      )
      with self.assertRaisesRegex(ValueError, msg):
          operator.matmul(x)
  
imports: import numpy
  from tensorflow.python.eager import backprop
  from tensorflow.python.eager import context
  from tensorflow.python.framework import config
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops import variables
  from tensorflow.python.ops.linalg import linalg
  from tensorflow.python.ops.linalg import linear_operator_block_diag
  from tensorflow.python.ops.linalg import linear_operator_lower_triangular
  from tensorflow.python.ops.linalg import linear_operator_test_util
  from tensorflow.python.ops.linalg import linear_operator_util
  from tensorflow.python.platform import test
label_desc: Use image node_id 23 for calling the SquareLinearOperatorBlockDiagTest obj's underlying member method code with example usage: obj.test_incompatible_input_blocks_raises() without return types