code: def test_gf_ddf():
      f = gf_from_dict({15: ZZ(1), 0: ZZ(-1)}, 11, ZZ)
      g = [
          ([1, 0, 0, 0, 0, 10], 1),
          ([1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1], 2),
      ]
  
      assert gf_ddf_zassenhaus(f, 11, ZZ) == g
      assert gf_ddf_shoup(f, 11, ZZ) == g
  
      f = gf_from_dict({63: ZZ(1), 0: ZZ(1)}, 2, ZZ)
      g = [
          ([1, 1], 1),
          ([1, 1, 1], 2),
          ([1, 1, 1, 1, 1, 1, 1], 3),
          (
              [
                  1,
                  1,
                  0,
                  1,
                  1,
                  0,
                  1,
                  0,
                  1,
                  1,
                  0,
                  1,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  1,
                  1,
                  0,
                  1,
                  1,
                  0,
                  1,
                  0,
                  1,
                  1,
                  0,
                  1,
                  1,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  1,
                  1,
                  0,
                  1,
                  1,
                  0,
                  1,
                  0,
                  1,
                  1,
                  0,
                  1,
                  1,
              ],
              6,
          ),
      ]
  
      assert gf_ddf_zassenhaus(f, 2, ZZ) == g
      assert gf_ddf_shoup(f, 2, ZZ) == g
  
      f = gf_from_dict(
          {6: ZZ(1), 5: ZZ(-1), 4: ZZ(1), 3: ZZ(1), 1: ZZ(-1)}, 3, ZZ
      )
      g = [([1, 1, 0], 1), ([1, 1, 0, 1, 2], 2)]
  
      assert gf_ddf_zassenhaus(f, 3, ZZ) == g
      assert gf_ddf_shoup(f, 3, ZZ) == g
  
      f = ZZ.map([1, 2, 5, 26, 677, 436, 791, 325, 456, 24, 577])
      g = [
          ([1, 701], 1),
          ([1, 110, 559, 532, 694, 151, 110, 70, 735, 122], 9),
      ]
  
      assert gf_ddf_zassenhaus(f, 809, ZZ) == g
      assert gf_ddf_shoup(f, 809, ZZ) == g
  
      p = ZZ(nextprime(int((2**15 * pi).evalf())))
      f = gf_from_dict({15: 1, 1: 1, 0: 1}, p, ZZ)
      g = [
          ([1, 22730, 68144], 2),
          (
              [
                  1,
                  64876,
                  83977,
                  10787,
                  12561,
                  68608,
                  52650,
                  88001,
                  84356,
              ],
              4,
          ),
          ([1, 15347, 95022, 84569, 94508, 92335], 5),
      ]
  
      assert gf_ddf_zassenhaus(f, p, ZZ) == g
      assert gf_ddf_shoup(f, p, ZZ) == g
  
imports: from sympy.polys.galoistools import gf_crt, gf_crt1, gf_crt2, gf_int, gf_degree, gf_strip, gf_trunc, gf_normal, gf_from_dict, gf_to_dict, gf_from_int_poly, gf_to_int_poly, gf_neg, gf_add_ground, gf_sub_ground, gf_mul_ground, gf_add, gf_sub, gf_add_mul, gf_sub_mul, gf_mul, gf_sqr, gf_div, gf_rem, gf_quo, gf_exquo, gf_lshift, gf_rshift, gf_expand, gf_pow, gf_pow_mod, gf_gcdex, gf_gcd, gf_lcm, gf_cofactors, gf_LC, gf_TC, gf_monic, gf_eval, gf_multi_eval, gf_compose, gf_compose_mod, gf_trace_map, gf_diff, gf_irreducible, gf_irreducible_p, gf_irred_p_ben_or, gf_irred_p_rabin, gf_sqf_list, gf_sqf_part, gf_sqf_p, gf_Qmatrix, gf_Qbasis, gf_ddf_zassenhaus, gf_ddf_shoup, gf_edf_zassenhaus, gf_edf_shoup, gf_berlekamp, gf_factor_sqf, gf_factor, gf_value, linear_congruence, _csolve_prime_las_vegas, csolve_prime, gf_csolve, gf_frobenius_map, gf_frobenius_monomial_base
  from sympy.polys.polyerrors import ExactQuotientFailed
  from sympy.polys import polyconfig
  from sympy.polys.domains import ZZ
  from sympy.core.numbers import pi
  from sympy.ntheory.generate import nextprime
  from sympy.testing.pytest import raises
label_desc: Use image node_id 30 for calling a global function with example usage: test_gf_ddf() without return types