code: def test_groebner_gcd():
      R, x, y, z = ring("x,y,z", ZZ)
  
      assert groebner_gcd(x**2 - y**2, x - y) == x - y
      assert (
          groebner_gcd(2 * x**2 - 2 * y**2, 2 * x - 2 * y)
          == 2 * x - 2 * y
      )
  
      R, x, y, z = ring("x,y,z", QQ)
  
      assert groebner_gcd(x**2 - y**2, x - y) == x - y
      assert (
          groebner_gcd(2 * x**2 - 2 * y**2, 2 * x - 2 * y) == x - y
      )
  
imports: from sympy.polys.groebnertools import groebner, sig, sig_key, lbp, lbp_key, critical_pair, cp_key, is_rewritable_or_comparable, Sign, Polyn, Num, s_poly, f5_reduce, groebner_lcm, groebner_gcd, is_groebner, is_reduced
  from sympy.polys.fglmtools import _representing_matrices
  from sympy.polys.orderings import lex, grlex
  from sympy.polys.rings import ring, xring
  from sympy.polys.domains import ZZ, QQ
  from sympy.testing.pytest import slow
  from sympy.polys import polyconfig
label_desc: Use image node_id 28 for calling a global function with example usage: test_groebner_gcd() without return types