code: def test_df_apply_rows_incols_mapping(nelem):
      def kernel(x, y, z, out1, out2, extra1, extra2):
          for i, (a, b, c) in enumerate(zip(x, y, z)):
              out1[i] = extra2 * a - extra1 * b
              out2[i] = b - extra1 * c
  
      df = DataFrame()
      df["in1"] = in1 = np.arange(nelem)
      df["in2"] = in2 = np.arange(nelem)
      df["in3"] = in3 = np.arange(nelem)
  
      extra1 = 2.3
      extra2 = 3.4
  
      expected_out = DataFrame()
      expected_out["out1"] = extra2 * in1 - extra1 * in2
      expected_out["out2"] = in2 - extra1 * in3
  
      outdf = df.apply_rows(
          kernel,
          incols={"in1": "x", "in2": "y", "in3": "z"},
          outcols=dict(out1=np.float64, out2=np.float64),
          kwargs=dict(extra1=extra1, extra2=extra2),
      )
  
      assert_eq(outdf[["out1", "out2"]], expected_out)
  
file_path: cudf/python/cudf/cudf/tests/test_cuda_apply.py
imports: import numpy
  import pytest
  from numba import cuda
  from cudf import DataFrame
  from cudf.testing._utils import assert_eq
label_desc: Use image node_id 5 for calling a global function with example usage: test_df_apply_rows_incols_mapping(nelem) without return types