code: def test_struct():
      vx, vy = Variable(x, type=float64), Variable(y, type=float64)
      s = struct("vec2", [vx, vy])
      assert s.func(*s.args) == s
      assert s == struct("vec2", (vx, vy))
      assert s != struct("vec2", (vy, vx))
      assert str(s.name) == "vec2"
      assert len(s.declarations) == 2
      assert all(isinstance(arg, Declaration) for arg in s.declarations)
      assert ccode(s) == (
          "struct vec2 {\n" "   double x;\n" "   double y;\n" "}"
      )
  
file_path: sympy/sympy/codegen/tests/test_cnodes.py
imports: from sympy.core.symbol import symbols
  from sympy.printing.codeprinter import ccode
  from sympy.codegen.ast import Declaration, Variable, float64, int64, String, CodeBlock
  from sympy.codegen.cnodes import alignof, CommaOperator, goto, Label, PreDecrement, PostDecrement, PreIncrement, PostIncrement, sizeof, union, struct
label_desc: Use image node_id 9 for calling a global function with example usage: test_struct() without return types