code: def test_chinese_remainder():
      R, x, y = ring("x, y", ZZ)
      p, q = 3, 5
  
      hp = x**3 * y - x**2 - 1
      hq = -(x**3) * y - 2 * x * y**2 + 2
  
      hpq = _chinese_remainder_reconstruction_multivariate(hp, hq, p, q)
  
      assert hpq.trunc_ground(p) == hp
      assert hpq.trunc_ground(q) == hq
  
      T, z = ring("z", R)
      p, q = 3, 7
  
      hp = (x * y + 1) * z**2 + x
      hq = (x**2 - 3 * y) * z + 2
  
      hpq = _chinese_remainder_reconstruction_multivariate(hp, hq, p, q)
  
      assert hpq.trunc_ground(p) == hp
      assert hpq.trunc_ground(q) == hq
  
file_path: sympy/sympy/polys/tests/test_modulargcd.py
imports: from sympy.polys.rings import ring
  from sympy.polys.domains import ZZ, QQ, AlgebraicField
  from sympy.polys.modulargcd import modgcd_univariate, modgcd_bivariate, _chinese_remainder_reconstruction_multivariate, modgcd_multivariate, _to_ZZ_poly, _to_ANP_poly, func_field_modgcd, _func_field_modgcd_m
  from sympy.functions.elementary.miscellaneous import sqrt
label_desc: Use image node_id 3 for calling a global function with example usage: test_chinese_remainder() without return types