code: def test_map_chunk_closure_execute(setup):
      raw = pd.DataFrame(
          np.random.randint(10**3, size=(10, 5)),
          columns=[f"col{i}" for i in range(5)],
      )
  
      df = from_pandas_df(raw, chunk_size=5)
      num = 1
      dic = {i: -i for i in range(10**3)}
  
      def f1(pdf):
          return pdf + num
  
      r = df.map_chunk(f1)
  
      result = r.execute().fetch()
      expected = raw + num
      pd.testing.assert_frame_equal(result, expected)
  
      def f2(pdf):
          ret = pd.DataFrame(columns=["col1", "col2"])
          ret["col1"] = pdf["col1"].apply(lambda x: dic.get(x, 0))
          ret["col2"] = pdf["col2"]
          return ret
  
      r = df.map_chunk(f2, output_type="dataframe")
  
      result = r.execute().fetch()
      expected = f2(raw)
      pd.testing.assert_frame_equal(result, expected)
  
      class callable_df:
          def __init__(self, multiplier: int = 1):
              self.dic = {i: -i for i in range(10**multiplier)}
  
          def __call__(self, pdf):
              ret = pd.DataFrame(columns=["col1", "col2"])
              ret["col1"] = pdf["col1"].apply(
                  lambda x: self.dic.get(x, 0)
              )
              ret["col2"] = pdf["col2"]
              return ret
  
      cdf = callable_df(multiplier=4)
      r = df.map_chunk(cdf, output_type="dataframe")
  
      result = r.execute().fetch()
      expected = cdf(raw)
      pd.testing.assert_frame_equal(result, expected)
  
imports: import random
  from collections import OrderedDict
  import numpy
  import pandas
  import pytest
  import mars
  from ....config import options, option_context
  from ....dataframe import DataFrame, Series
  from ....tensor import arange, tensor
  from ....tensor.random import rand
  from ....tests.core import require_cudf
  from ....utils import lazy_import, pd_release_version, no_default
  from ...None import eval, cut, qcut, get_dummies
  from ...core import DATAFRAME_OR_SERIES_TYPE
  from ...datasource.dataframe import from_pandas
  from ...datasource.series import from_pandas
  from ...datasource.index import from_pandas
  from ..None import to_gpu, to_cpu
  from ..bloom_filter import filter_by_bloom_filter
  from ..shift import _enable_no_default, _with_column_freq_bug
  from ..to_numeric import to_numeric
  from ..rebalance import DataFrameRebalance
label_desc: Use image node_id 36 for calling a global function with example usage: test_map_chunk_closure_execute(setup) and returns: unknown, ret, ret