code: def test_non_square_operators_raise_on_determinant_and_solve(self):
      operator = LinearOperatorShape((2, 3))
      with self.assertRaisesRegex(NotImplementedError, "not be square"):
          operator.determinant()
      with self.assertRaisesRegex(NotImplementedError, "not be square"):
          operator.log_abs_determinant()
      with self.assertRaisesRegex(NotImplementedError, "not be square"):
          operator.solve(rng.rand(2, 2))
  
      with self.assertRaisesRegex(ValueError, "is always square"):
          matrix = array_ops.placeholder_with_default(
              input=(), shape=None
          )
          LinearOperatorMatmulSolve(
              matrix, is_positive_definite=True, is_square=False
          )
  
imports: import numpy
  from tensorflow.python.eager import context
  from tensorflow.python.framework import constant_op
  from tensorflow.python.framework import dtypes
  from tensorflow.python.framework import ops
  from tensorflow.python.framework import tensor_shape
  from tensorflow.python.framework import test_util
  from tensorflow.python.ops import array_ops
  from tensorflow.python.ops import linalg_ops
  from tensorflow.python.ops import math_ops
  from tensorflow.python.ops.linalg import linalg
  from tensorflow.python.ops.parallel_for import control_flow_ops
  from tensorflow.python.platform import test
label_desc: Use image node_id 13 for calling the LinearOperatorTest obj's underlying member method code with example usage: obj.test_non_square_operators_raise_on_determinant_and_solve() without return types