code: def test_reductions_with_pandas_and_arrow_ea(dtype, func):
      if func in ["skew", "kurtosis"]:
          pytest.importorskip("scipy")
          if "pyarrow" in dtype:
              pytest.xfail(
                  "skew/kurtosis not implemented for arrow dtypes"
              )
  
      ser = pd.Series([1, 2, 3, 4], dtype=dtype)
      ds = dd.from_pandas(ser, npartitions=2)
      pd_result = getattr(ser, func)()
      dd_result = getattr(ds, func)()
      if func == "kurtosis":
          n = ser.shape[0]
          factor = ((n - 1) * (n + 1)) / ((n - 2) * (n - 3))
          offset = (6 * (n - 1)) / ((n - 2) * (n - 3))
          dd_result = factor * dd_result + offset
      # _meta is wrongly NA
      assert_eq(dd_result, pd_result, check_dtype=False)
  
imports: from __future__ import annotations
  import contextlib
  import warnings
  from datetime import datetime
  import numpy
  import pandas
  import pytest
  from pandas.api.types import is_scalar
  import dask.dataframe
  from dask.array.numpy_compat import _numpy_125
  from dask.dataframe._compat import PANDAS_GE_140, PANDAS_GE_150, PANDAS_GE_200, PANDAS_VERSION, check_numeric_only_deprecation
  from dask.dataframe.utils import assert_dask_graph, assert_eq, make_meta, pyarrow_strings_enabled
label_desc: Use image node_id 36 for calling a global function with example usage: test_reductions_with_pandas_and_arrow_ea(dtype, func) without return types