code: def test_XXM_lll(DM):
      M = DM([[1, 2, 3], [4, 5, 20]])
      M_lll = DM([[1, 2, 3], [-1, -5, 5]])
      T = DM([[1, 0], [-5, 1]])
      assert M.lll() == M_lll
      assert M.lll_transform() == (M_lll, T)
      assert T.matmul(M) == M_lll
  
imports: from sympy.external.gmpy import GROUND_TYPES
  from sympy import ZZ, QQ, GF, ZZ_I, symbols
  from sympy.polys.matrices.exceptions import DMBadInputError, DMDomainError, DMNonSquareMatrixError, DMNonInvertibleMatrixError, DMShapeError
  from sympy.polys.matrices.domainmatrix import DM, DomainMatrix, DDM, SDM, DFM
  from sympy.testing.pytest import raises, skip
  import pytest
label_desc: Use image node_id 61 for calling a global function with example usage: test_XXM_lll(DM) without return types