code: def test_complicated_codegen():
      from sympy.functions.elementary.trigonometric import cos, sin, tan
  
      x, y, z = symbols("x,y,z")
      name_expr = [
          ("test1", ((sin(x) + cos(y) + tan(z)) ** 7).expand()),
          ("test2", cos(cos(cos(cos(cos(cos(cos(cos(x + y + z))))))))),
      ]
      result = codegen(
          name_expr, "C89", "file", header=False, empty=False
      )
      assert result[0][0] == "file.c"
      assert result[0][1] == (
          '#include "file.h"\n#include <math.h>\n'
          "double test1(double x, double y, double z) {\n"
          "   double test1_result;\n"
          "   test1_result = "
          "pow(sin(x), 7) + "
          "7*pow(sin(x), 6)*cos(y) + "
          "7*pow(sin(x), 6)*tan(z) + "
          "21*pow(sin(x), 5)*pow(cos(y), 2) + "
          "42*pow(sin(x), 5)*cos(y)*tan(z) + "
          "21*pow(sin(x), 5)*pow(tan(z), 2) + "
          "35*pow(sin(x), 4)*pow(cos(y), 3) + "
          "105*pow(sin(x), 4)*pow(cos(y), 2)*tan(z) + "
          "105*pow(sin(x), 4)*cos(y)*pow(tan(z), 2) + "
          "35*pow(sin(x), 4)*pow(tan(z), 3) + "
          "35*pow(sin(x), 3)*pow(cos(y), 4) + "
          "140*pow(sin(x), 3)*pow(cos(y), 3)*tan(z) + "
          "210*pow(sin(x), 3)*pow(cos(y), 2)*pow(tan(z), 2) + "
          "140*pow(sin(x), 3)*cos(y)*pow(tan(z), 3) + "
          "35*pow(sin(x), 3)*pow(tan(z), 4) + "
          "21*pow(sin(x), 2)*pow(cos(y), 5) + "
          "105*pow(sin(x), 2)*pow(cos(y), 4)*tan(z) + "
          "210*pow(sin(x), 2)*pow(cos(y), 3)*pow(tan(z), 2) + "
          "210*pow(sin(x), 2)*pow(cos(y), 2)*pow(tan(z), 3) + "
          "105*pow(sin(x), 2)*cos(y)*pow(tan(z), 4) + "
          "21*pow(sin(x), 2)*pow(tan(z), 5) + "
          "7*sin(x)*pow(cos(y), 6) + "
          "42*sin(x)*pow(cos(y), 5)*tan(z) + "
          "105*sin(x)*pow(cos(y), 4)*pow(tan(z), 2) + "
          "140*sin(x)*pow(cos(y), 3)*pow(tan(z), 3) + "
          "105*sin(x)*pow(cos(y), 2)*pow(tan(z), 4) + "
          "42*sin(x)*cos(y)*pow(tan(z), 5) + "
          "7*sin(x)*pow(tan(z), 6) + "
          "pow(cos(y), 7) + "
          "7*pow(cos(y), 6)*tan(z) + "
          "21*pow(cos(y), 5)*pow(tan(z), 2) + "
          "35*pow(cos(y), 4)*pow(tan(z), 3) + "
          "35*pow(cos(y), 3)*pow(tan(z), 4) + "
          "21*pow(cos(y), 2)*pow(tan(z), 5) + "
          "7*cos(y)*pow(tan(z), 6) + "
          "pow(tan(z), 7);\n"
          "   return test1_result;\n"
          "}\n"
          "double test2(double x, double y, double z) {\n"
          "   double test2_result;\n"
          "   test2_result = cos(cos(cos(cos(cos(cos(cos(cos(x + y + z))))))));\n"
          "   return test2_result;\n"
          "}\n"
      )
      assert result[1][0] == "file.h"
      assert result[1][1] == (
          "#ifndef PROJECT__FILE__H\n"
          "#define PROJECT__FILE__H\n"
          "double test1(double x, double y, double z);\n"
          "double test2(double x, double y, double z);\n"
          "#endif\n"
      )
  
imports: from io import StringIO
  from sympy.core import symbols, Eq, pi, Catalan, Lambda, Dummy
  from sympy.core.relational import Equality
  from sympy.core.symbol import Symbol
  from sympy.functions.special.error_functions import erf
  from sympy.integrals.integrals import Integral
  from sympy.matrices import Matrix, MatrixSymbol
  from sympy.utilities.codegen import codegen, make_routine, CCodeGen, C89CodeGen, C99CodeGen, InputArgument, CodeGenError, FCodeGen, CodeGenArgumentListError, OutputArgument, InOutArgument
  from sympy.testing.pytest import raises
  from sympy.utilities.lambdify import implemented_function
label_desc: Use image node_id 16 for calling a global function with example usage: test_complicated_codegen() without return types