code: def test_decide_dataframe_chunks():
      with option_context() as options:
          options.chunk_store_limit = 64
  
          memory_usage = pd.Series(
              [8, 22.2, 4, 2, 11.2], index=list("abcde")
          )
  
          shape = (10, 5)
          nsplit = decide_dataframe_chunk_sizes(
              shape, None, memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          nsplit = decide_dataframe_chunk_sizes(
              shape, {0: 4}, memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          nsplit = decide_dataframe_chunk_sizes(
              shape, (2, 3), memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          nsplit = decide_dataframe_chunk_sizes(
              shape, (10, 3), memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          options.chunk_store_limit = 20
  
          shape = (10, 5)
          nsplit = decide_dataframe_chunk_sizes(
              shape, None, memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          nsplit = decide_dataframe_chunk_sizes(
              shape, {1: 3}, memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          nsplit = decide_dataframe_chunk_sizes(
              shape, (2, 3), memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
          nsplit = decide_dataframe_chunk_sizes(
              shape, (10, 3), memory_usage
          )
          for ns in nsplit:
              assert all(isinstance(i, Integral) for i in ns) is True
          assert shape == tuple(sum(ns) for ns in nsplit)
  
imports: import operator
  from collections import OrderedDict
  from numbers import Integral
  from typing import List, Dict
  import numpy
  import pandas
  import pytest
  from ...config import option_context
  from ...core import tile
  from ...utils import Timer
  from ..core import IndexValue
  from ..initializer import DataFrame, Series, Index
  from ..utils import decide_dataframe_chunk_sizes, decide_series_chunk_size, split_monotonic_index_min_max, build_split_idx_to_origin_idx, parse_index, filter_index_value, infer_dtypes, infer_index_value, validate_axis, fetch_corner_data, make_dtypes, build_concatenated_rows_frame, merge_index_value, auto_merge_chunks, whether_to_clean_up
label_desc: Use image node_id 1 for calling a global function with example usage: test_decide_dataframe_chunks() without return types