code: def test_numba_func():
      # shape, dtype, run_fn, out_types,
      # in_types, out_ndim, in_ndim, setup_fn, batch_processing,
      # expected_out
      args = [
          (
              [(10, 10, 10)],
              np.uint8,
              set_all_values_to_255_batch,
              [dali_types.UINT8],
              [dali_types.UINT8],
              [3],
              [3],
              None,
              True,
              [np.full((10, 10, 10), 255, dtype=np.uint8)],
          ),
          (
              [(10, 10, 10)],
              np.uint8,
              set_all_values_to_255_sample,
              [dali_types.UINT8],
              [dali_types.UINT8],
              [3],
              [3],
              None,
              None,
              [np.full((10, 10, 10), 255, dtype=np.uint8)],
          ),
          (
              [(10, 10, 10)],
              np.float32,
              set_all_values_to_float_batch,
              [dali_types.FLOAT],
              [dali_types.FLOAT],
              [3],
              [3],
              None,
              True,
              [np.full((10, 10, 10), 0.5, dtype=np.float32)],
          ),
          (
              [(10, 10, 10)],
              np.float32,
              set_all_values_to_float_sample,
              [dali_types.FLOAT],
              [dali_types.FLOAT],
              [3],
              [3],
              None,
              None,
              [np.full((10, 10, 10), 0.5, dtype=np.float32)],
          ),
          (
              [(10, 20, 30), (20, 10, 30)],
              np.int64,
              change_out_shape_batch,
              [dali_types.INT64],
              [dali_types.INT64],
              [3],
              [3],
              setup_change_out_shape,
              True,
              [
                  np.full((20, 30, 10), 42, dtype=np.int32),
                  np.full((10, 30, 20), 42, dtype=np.int32),
              ],
          ),
          (
              [(10, 20, 30), (20, 10, 30)],
              np.int64,
              change_out_shape_sample,
              [dali_types.INT64],
              [dali_types.INT64],
              [3],
              [3],
              setup_change_out_shape,
              None,
              [
                  np.full((20, 30, 10), 42, dtype=np.int32),
                  np.full((10, 30, 20), 42, dtype=np.int32),
              ],
          ),
      ]
  
      device = "cpu"
      for (
          shape,
          dtype,
          run_fn,
          out_types,
          in_types,
          outs_ndim,
          ins_ndim,
          setup_fn,
          batch_processing,
          expected_out,
      ) in args:
          yield (
              _testimpl_numba_func,
              device,
              shape,
              dtype,
              run_fn,
              out_types,
              in_types,
              outs_ndim,
              ins_ndim,
              setup_fn,
              batch_processing,
              expected_out,
          )
  
imports: import numpy
  import os
  from nvidia.dali import pipeline_def
  import nvidia.dali
  import nvidia.dali.fn
  import nvidia.dali.types
  from nose import with_setup
  from test_utils import get_dali_extra_path, to_array, check_numba_compatibility_cpu, check_numba_compatibility_gpu
  from nvidia.dali.plugin.numba.fn.experimental import numba_function
  from numba import cuda
label_desc: Use image node_id 18 for calling a global function with example usage: test_numba_func() without return types