code: def test_ddm_imatmul():
      a = [[1, 2, 3], [4, 5, 6]]
      b = [[1, 2], [3, 4], [5, 6]]
  
      c1 = [[0, 0], [0, 0]]
      ddm_imatmul(c1, a, b)
      assert c1 == [[22, 28], [49, 64]]
  
      c2 = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
      ddm_imatmul(c2, b, a)
      assert c2 == [[9, 12, 15], [19, 26, 33], [29, 40, 51]]
  
      b3 = [[1], [2], [3]]
      c3 = [[0], [0]]
      ddm_imatmul(c3, a, b3)
      assert c3 == [[14], [32]]
  
file_path: sympy/sympy/polys/matrices/tests/test_dense.py
imports: from sympy.testing.pytest import raises
  from sympy.polys import ZZ, QQ
  from sympy.polys.matrices.ddm import DDM
  from sympy.polys.matrices.dense import ddm_transpose, ddm_iadd, ddm_isub, ddm_ineg, ddm_imatmul, ddm_imul, ddm_irref, ddm_idet, ddm_iinv, ddm_ilu, ddm_ilu_split, ddm_ilu_solve, ddm_berk
  from sympy.polys.matrices.exceptions import DMDomainError, DMNonInvertibleMatrixError, DMNonSquareMatrixError, DMShapeError
label_desc: Use image node_id 6 for calling a global function with example usage: test_ddm_imatmul() without return types