code: def test_lower_triangular_solve():
      raises(
          NonSquareMatrixError,
          lambda: Matrix([1, 0]).lower_triangular_solve(Matrix([0, 1])),
      )
      raises(
          ShapeError,
          lambda: Matrix([[1, 0], [0, 1]]).lower_triangular_solve(
              Matrix([1])
          ),
      )
      raises(
          ValueError,
          lambda: Matrix([[2, 1], [1, 2]]).lower_triangular_solve(
              Matrix([[1, 0], [0, 1]])
          ),
      )
  
      A = Matrix([[1, 0], [0, 1]])
      B = Matrix([[x, y], [y, x]])
      C = Matrix([[4, 8], [2, 9]])
  
      assert A.lower_triangular_solve(B) == B
      assert A.lower_triangular_solve(C) == C
  
imports: import pytest
  from sympy.core.function import expand_mul
  from sympy.core.numbers import I, Rational
  from sympy.core.singleton import S
  from sympy.core.symbol import Symbol, symbols
  from sympy.core.sympify import sympify
  from sympy.simplify.simplify import simplify
  from sympy.matrices.exceptions import ShapeError, NonSquareMatrixError
  from sympy.matrices import ImmutableMatrix, Matrix, eye, ones, ImmutableDenseMatrix, dotprodsimp
  from sympy.matrices.determinant import _det_laplace
  from sympy.testing.pytest import raises
  from sympy.matrices.exceptions import NonInvertibleMatrixError
  from sympy.polys.matrices.exceptions import DMShapeError
  from sympy.solvers.solveset import linsolve
  from sympy.abc import x, y
label_desc: Use image node_id 10 for calling a global function with example usage: test_lower_triangular_solve() without return types