code: def test_limited_integrate():
      DE = DifferentialExtension(extension={"D": [Poly(1, x)]})
      G = [(Poly(x, x), Poly(x + 1, x))]
      assert limited_integrate(
          Poly(-(1 + x + 5 * x**2 - 3 * x**3), x),
          Poly(1 - x - x**2 + x**3, x),
          G,
          DE,
      ) == ((Poly(x**2 - x + 2, x), Poly(x - 1, x, domain="QQ")), [2])
      G = [(Poly(1, x), Poly(x, x))]
      assert limited_integrate(
          Poly(5 * x**2, x), Poly(3, x), G, DE
      ) == ((Poly(5 * x**3 / 9, x), Poly(1, x, domain="QQ")), [0])
  
imports: from sympy.integrals.risch import DifferentialExtension, derivation
  from sympy.integrals.prde import prde_normal_denom, prde_special_denom, prde_linear_constraints, constant_system, prde_spde, prde_no_cancel_b_large, prde_no_cancel_b_small, limited_integrate_reduce, limited_integrate, is_deriv_k, is_log_deriv_k_t_radical, parametric_log_deriv_heu, is_log_deriv_k_t_radical_in_field, param_poly_rischDE, param_rischDE, prde_cancel_liouvillian
  from sympy.polys.polymatrix import PolyMatrix
  from sympy.core.numbers import Rational
  from sympy.core.singleton import S
  from sympy.core.symbol import symbols
  from sympy.polys.domains.rationalfield import QQ
  from sympy.polys.polytools import Poly
  from sympy.abc import x, t, n
label_desc: Use image node_id 11 for calling a global function with example usage: test_limited_integrate() without return types