code: def test_XXM_nullspace_QQ(DM):
      dM1 = DM([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
      # XXX: Change the signature to just return the nullspace. Possibly
      # returning the rank or nullity makes sense but the list of nonpivots is
      # not useful.
      assert dM1.nullspace() == (DM([[1, -2, 1]]), [2])
  
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 60 for calling a global function with example usage: test_XXM_nullspace_QQ(DM) without return types