code: def test_gf_berlekamp():
      f = gf_from_int_poly([1, -3, 1, -3, -1, -3, 1], 11)
  
      Q = [
          [1, 0, 0, 0, 0, 0],
          [3, 5, 8, 8, 6, 5],
          [3, 6, 6, 1, 10, 0],
          [9, 4, 10, 3, 7, 9],
          [7, 8, 10, 0, 0, 8],
          [8, 10, 7, 8, 10, 8],
      ]
  
      V = [[1, 0, 0, 0, 0, 0], [0, 1, 1, 1, 1, 0], [0, 0, 7, 9, 0, 1]]
  
      assert gf_Qmatrix(f, 11, ZZ) == Q
      assert gf_Qbasis(Q, 11, ZZ) == V
  
      assert gf_berlekamp(f, 11, ZZ) == [
          [1, 1],
          [1, 5, 3],
          [1, 2, 3, 4],
      ]
  
      f = ZZ.map([1, 0, 1, 0, 10, 10, 8, 2, 8])
  
      Q = ZZ.map(
          [
              [1, 0, 0, 0, 0, 0, 0, 0],
              [2, 1, 7, 11, 10, 12, 5, 11],
              [3, 6, 4, 3, 0, 4, 7, 2],
              [4, 3, 6, 5, 1, 6, 2, 3],
              [2, 11, 8, 8, 3, 1, 3, 11],
              [6, 11, 8, 6, 2, 7, 10, 9],
              [5, 11, 7, 10, 0, 11, 7, 12],
              [3, 3, 12, 5, 0, 11, 9, 12],
          ]
      )
  
      V = [
          [1, 0, 0, 0, 0, 0, 0, 0],
          [0, 5, 5, 0, 9, 5, 1, 0],
          [0, 9, 11, 9, 10, 12, 0, 1],
      ]
  
      assert gf_Qmatrix(f, 13, ZZ) == Q
      assert gf_Qbasis(Q, 13, ZZ) == V
  
      assert gf_berlekamp(f, 13, ZZ) == [
          [1, 3],
          [1, 8, 4, 12],
          [1, 2, 3, 4, 6],
      ]
  
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 29 for calling a global function with example usage: test_gf_berlekamp() without return types