code: def test_can_build_and_run_binary(ctx_factory):
      ctx = ctx_factory()
      queue = cl.CommandQueue(ctx)
  
      device = queue.device
  
      program = cl.Program(
          ctx,
          """
      __kernel void simple(__global float *in, __global float *out)
      {
          out[get_global_id(0)] = in[get_global_id(0)];
      }""",
      )
      program.build()
      binary = program.get_info(cl.program_info.BINARIES)[0]
  
      foo = cl.Program(ctx, [device], [binary])
      foo.build()
  
      n = 256
      a_dev = cl.clrandom.rand(queue, n, np.float32)
      dest_dev = cl_array.empty_like(a_dev)
  
      foo.simple(queue, (n,), (16,), a_dev.data, dest_dev.data)
  
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 20 for calling a global function with example usage: test_can_build_and_run_binary(ctx_factory) without return types