code: def test_change_index():
      b, y, c, d, z = symbols("b, y, c, d, z", integer=True)
  
      assert Product(x, (x, a, b)).change_index(x, x + 1, y) == Product(
          y - 1, (y, a + 1, b + 1)
      )
      assert Product(x**2, (x, a, b)).change_index(
          x, x - 1
      ) == Product((x + 1) ** 2, (x, a - 1, b - 1))
      assert Product(x**2, (x, a, b)).change_index(
          x, -x, y
      ) == Product((-y) ** 2, (y, -b, -a))
      assert Product(x, (x, a, b)).change_index(x, -x - 1) == Product(
          -x - 1, (x, -b - 1, -a - 1)
      )
      assert Product(x * y, (x, a, b), (y, c, d)).change_index(
          x, x - 1, z
      ) == Product((z + 1) * y, (z, a - 1, b - 1), (y, c, d))
  
imports: from sympy.concrete.products import Product, product
  from sympy.concrete.summations import Sum
  from sympy.core.function import Derivative, Function, diff
  from sympy.core.numbers import Rational, oo, pi
  from sympy.core.singleton import S
  from sympy.core.symbol import Dummy, Symbol, symbols
  from sympy.functions.combinatorial.factorials import rf, factorial
  from sympy.functions.elementary.exponential import exp, log
  from sympy.functions.elementary.miscellaneous import sqrt
  from sympy.functions.elementary.trigonometric import cos, sin
  from sympy.functions.special.tensor_functions import KroneckerDelta
  from sympy.simplify.combsimp import combsimp
  from sympy.simplify.simplify import simplify
  from sympy.testing.pytest import raises
label_desc: Use image node_id 13 for calling a global function with example usage: test_change_index() without return types