code: def test_cython_wrapper_unique_dummyvars():
      from sympy.core.relational import Equality
      from sympy.core.symbol import Dummy
  
      x, y, z = Dummy("x"), Dummy("y"), Dummy("z")
      x_id, y_id, z_id = [str(d.dummy_index) for d in [x, y, z]]
      expr = Equality(z, x + y)
      routine = make_routine("test", expr)
      code_gen = CythonCodeWrapper(CCodeGen())
      source = get_string(code_gen.dump_pyx, [routine])
      expected_template = (
          "cdef extern from 'file.h':\n"
          "    void test(double x_{x_id}, double y_{y_id}, double *z_{z_id})\n"
          "\n"
          "def test_c(double x_{x_id}, double y_{y_id}):\n"
          "\n"
          "    cdef double z_{z_id} = 0\n"
          "    test(x_{x_id}, y_{y_id}, &z_{z_id})\n"
          "    return z_{z_id}"
      )
      expected = expected_template.format(
          x_id=x_id, y_id=y_id, z_id=z_id
      )
      assert source == expected
  
imports: import os
  import tempfile
  import shutil
  from io import StringIO
  from sympy.core import symbols, Eq
  from sympy.utilities.autowrap import autowrap, binary_function, CythonCodeWrapper, UfuncifyCodeWrapper, CodeWrapper
  from sympy.utilities.codegen import CCodeGen, C99CodeGen, CodeGenArgumentListError, make_routine
  from sympy.testing.pytest import raises
  from sympy.testing.tmpfiles import TmpFileManager
label_desc: Use image node_id 6 for calling a global function with example usage: test_cython_wrapper_unique_dummyvars() without return types