code: def test_DMP_properties():
      assert DMP([[]], ZZ).is_zero is True
      assert DMP([[ZZ(1)]], ZZ).is_zero is False
  
      assert DMP([[ZZ(1)]], ZZ).is_one is True
      assert DMP([[ZZ(2)]], ZZ).is_one is False
  
      assert DMP([[ZZ(1)]], ZZ).is_ground is True
      assert DMP([[ZZ(1)], [ZZ(2)], [ZZ(1)]], ZZ).is_ground is False
  
      assert (
          DMP([[ZZ(1)], [ZZ(2), ZZ(0)], [ZZ(1), ZZ(0)]], ZZ).is_sqf
          is True
      )
      assert (
          DMP(
              [[ZZ(1)], [ZZ(2), ZZ(0)], [ZZ(1), ZZ(0), ZZ(0)]], ZZ
          ).is_sqf
          is False
      )
  
      assert DMP([[ZZ(1), ZZ(2)], [ZZ(3)]], ZZ).is_monic is True
      assert DMP([[ZZ(2), ZZ(2)], [ZZ(3)]], ZZ).is_monic is False
  
      assert DMP([[ZZ(1), ZZ(2)], [ZZ(3)]], ZZ).is_primitive is True
      assert DMP([[ZZ(2), ZZ(4)], [ZZ(6)]], ZZ).is_primitive is False
  
imports: from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.polys.domains import ZZ, QQ
  from sympy.polys.polyclasses import DMP, DMF, ANP
  from sympy.polys.polyerrors import CoercionFailed, ExactQuotientFailed, NotInvertible
  from sympy.polys.specialpolys import f_polys
  from sympy.testing.pytest import raises, warns_deprecated_sympy
label_desc: Use image node_id 6 for calling a global function with example usage: test_DMP_properties() without return types