code: def test_vector_args(ctx_factory):
      context = ctx_factory()
      queue = cl.CommandQueue(context)
  
      prg = cl.Program(
          context,
          """
          __kernel void set_vec(float4 x, __global float4 *dest)
          { dest[get_global_id(0)] = x; }
          """,
      ).build()
  
      x = cltypes.make_float4(1, 2, 3, 4)
      dest = np.empty(50000, cltypes.float4)
      mf = cl.mem_flags
      dest_buf = cl.Buffer(
          context, mf.READ_WRITE | mf.COPY_HOST_PTR, hostbuf=dest
      )
  
      prg.set_vec(queue, dest.shape, None, x, dest_buf)
  
      cl.enqueue_copy(queue, dest, dest_buf).wait()
  
      assert (dest == x).all()
  
imports: import numpy
  import numpy.linalg
  import pytest
  import pyopencl
  import pyopencl.array
  import pyopencl.cltypes
  import pyopencl.clrandom
  from pyopencl.tools import pytest_generate_tests_for_pyopencl, ImmediateAllocator, DeferredAllocator
  from pyopencl.characterize import get_pocl_version
label_desc: Use image node_id 17 for calling a global function with example usage: test_vector_args(ctx_factory) without return types