code: def test_describe_execution(setup):
      s_raw = pd.Series(np.random.rand(10))
  
      # test one chunk
      series = from_pandas_series(s_raw, chunk_size=10)
  
      r = series.describe()
      result = r.execute().fetch()
      expected = s_raw.describe()
      pd.testing.assert_series_equal(result, expected)
  
      r = series.describe(percentiles=[])
      result = r.execute().fetch()
      expected = s_raw.describe(percentiles=[])
      pd.testing.assert_series_equal(result, expected)
  
      # test multi chunks
      series = from_pandas_series(s_raw, chunk_size=3)
  
      r = series.describe()
      result = r.execute().fetch()
      expected = s_raw.describe()
      pd.testing.assert_series_equal(result, expected)
  
      r = series.describe(percentiles=[])
      result = r.execute().fetch()
      expected = s_raw.describe(percentiles=[])
      pd.testing.assert_series_equal(result, expected)
  
      rs = np.random.RandomState(5)
      df_raw = pd.DataFrame(rs.rand(10, 4), columns=list("abcd"))
      df_raw["e"] = rs.randint(100, size=10)
  
      # test one chunk
      df = from_pandas_df(df_raw, chunk_size=10)
  
      r = df.describe()
      result = r.execute().fetch()
      expected = df_raw.describe()
      pd.testing.assert_frame_equal(result, expected)
  
      r = series.describe(percentiles=[], include=np.float64)
      result = r.execute().fetch()
      expected = s_raw.describe(percentiles=[], include=np.float64)
      pd.testing.assert_series_equal(result, expected)
  
      # test multi chunks
      df = from_pandas_df(df_raw, chunk_size=3)
  
      r = df.describe()
      result = r.execute().fetch()
      expected = df_raw.describe()
      pd.testing.assert_frame_equal(result, expected)
  
      r = df.describe(percentiles=[], include=np.float64)
      result = r.execute().fetch()
      expected = df_raw.describe(percentiles=[], include=np.float64)
      pd.testing.assert_frame_equal(result, expected)
  
      # test skip percentiles
      r = df.describe(percentiles=False, include=np.float64)
      result = r.execute().fetch()
      expected = df_raw.describe(percentiles=[], include=np.float64)
      expected.drop(["50%"], axis=0, inplace=True)
      pd.testing.assert_frame_equal(result, expected)
  
      with pytest.raises(ValueError):
          df.describe(percentiles=[1.1])
  
      with pytest.raises(ValueError):
          # duplicated values
          df.describe(percentiles=[0.3, 0.5, 0.3])
  
      # test input dataframe which has unknown shape
      df = from_pandas_df(df_raw, chunk_size=3)
      df2 = df[df["a"] < 0.5]
      r = df2.describe()
  
      result = r.execute().fetch()
      expected = df_raw[df_raw["a"] < 0.5].describe()
      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 5 for calling a global function with example usage: test_describe_execution(setup) without return types