code: def test_process_common_addends():
      # this tests that the args are not evaluated as they are given to do
      # and that key2 works when key1 is False
      do = lambda x: Add(*[i ** (i % 2) for i in x.args])
      assert (
          process_common_addends(
              Add(*[1, 2, 3, 4], evaluate=False),
              do,
              key2=lambda x: x % 2,
              key1=False,
          )
          == 1**1 + 3**1 + 2**0 + 4**0
      )
  
imports: from sympy.core.add import Add
  from sympy.core.mul import Mul
  from sympy.core.numbers import I, Rational, pi
  from sympy.core.singleton import S
  from sympy.core.symbol import Dummy, Symbol, symbols
  from sympy.functions.elementary.hyperbolic import cosh, coth, csch, sech, sinh, tanh
  from sympy.functions.elementary.miscellaneous import root, sqrt
  from sympy.functions.elementary.trigonometric import cos, cot, csc, sec, sin, tan
  from sympy.simplify.powsimp import powsimp
  from sympy.simplify.fu import L, TR1, TR10, TR10i, TR11, _TR11, TR12, TR12i, TR13, TR14, TR15, TR16, TR111, TR2, TR2i, TR3, TR5, TR6, TR7, TR8, TR9, TRmorrie, _TR56, TRpower, hyper_as_trig, fu, process_common_addends, trig_split, as_f_sign_1
  from sympy.core.random import verify_numerically
  from sympy.abc import a, b, c, x, y, z
label_desc: Use image node_id 20 for calling a global function with example usage: test_process_common_addends() without return types