code: def test_zero_power():
      z1 = ZeroMatrix(n, n)
      assert MatPow(z1, 3).doit() == z1
      raises(ValueError, lambda: MatPow(z1, -1).doit())
      assert MatPow(z1, 0).doit() == Identity(n)
      assert MatPow(z1, n).doit() == z1
      raises(ValueError, lambda: MatPow(z1, -2).doit())
      z2 = ZeroMatrix(4, 4)
      assert MatPow(z2, n).doit() == z2
      raises(ValueError, lambda: MatPow(z2, -3).doit())
      assert MatPow(z2, 2).doit() == z2
      assert MatPow(z2, 0).doit() == Identity(4)
      raises(ValueError, lambda: MatPow(z2, -1).doit())
  
imports: from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.simplify.powsimp import powsimp
  from sympy.testing.pytest import raises
  from sympy.core.expr import unchanged
  from sympy.core import symbols, S
  from sympy.matrices import Identity, MatrixSymbol, ImmutableMatrix, ZeroMatrix, OneMatrix, Matrix
  from sympy.matrices.exceptions import NonSquareMatrixError
  from sympy.matrices.expressions import MatPow, MatAdd, MatMul
  from sympy.matrices.expressions.inverse import Inverse
  from sympy.matrices.expressions.matexpr import MatrixElement
label_desc: Use image node_id 11 for calling a global function with example usage: test_zero_power() without return types