code: def test_ProductOrder():
      P = ProductOrder(
          (grlex, lambda m: m[:2]), (grlex, lambda m: m[2:])
      )
      assert P((1, 3, 3, 4, 5)) > P((2, 1, 5, 5, 5))
      assert str(P) == "ProductOrder(grlex, grlex)"
      assert P.is_global is True
      assert ProductOrder((grlex, None), (ilex, None)).is_global is None
      assert (
          ProductOrder((igrlex, None), (ilex, None)).is_global is False
      )
  
file_path: sympy/sympy/polys/tests/test_orderings.py
imports: from sympy.polys.orderings import monomial_key, lex, grlex, grevlex, ilex, igrlex, LexOrder, InverseOrder, ProductOrder, build_product_order
  from sympy.abc import x, y, z, t
  from sympy.core import S
  from sympy.testing.pytest import raises
label_desc: Use image node_id 5 for calling a global function with example usage: test_ProductOrder() without return types