code: def test_private_split_at_indices(ray_start_regular_shared):
      inputs = _create_blocks_with_metadata([])
      splits = list(zip(*_split_at_indices(inputs, [0])))
      verify_splits(splits, [[], []])
  
      splits = list(zip(*_split_at_indices(inputs, [])))
      verify_splits(splits, [[]])
  
      inputs = _create_blocks_with_metadata([[1], [2, 3], [4]])
  
      splits = list(zip(*_split_at_indices(inputs, [1])))
      verify_splits(splits, [[[1]], [[2, 3], [4]]])
  
      inputs = _create_blocks_with_metadata([[1], [2, 3], [4]])
      splits = list(zip(*_split_at_indices(inputs, [2])))
      verify_splits(splits, [[[1], [2]], [[3], [4]]])
  
      inputs = _create_blocks_with_metadata([[1], [2, 3], [4]])
      splits = list(zip(*_split_at_indices(inputs, [1])))
      verify_splits(splits, [[[1]], [[2, 3], [4]]])
  
      inputs = _create_blocks_with_metadata([[1], [2, 3], [4]])
      splits = list(zip(*_split_at_indices(inputs, [2, 2])))
      verify_splits(splits, [[[1], [2]], [], [[3], [4]]])
  
      inputs = _create_blocks_with_metadata([[1], [2, 3], [4]])
      splits = list(zip(*_split_at_indices(inputs, [])))
      verify_splits(splits, [[[1], [2, 3], [4]]])
  
      inputs = _create_blocks_with_metadata([[1], [2, 3], [4]])
      splits = list(zip(*_split_at_indices(inputs, [0, 4])))
      verify_splits(splits, [[], [[1], [2, 3], [4]], []])
  
imports: import itertools
  import math
  import random
  import time
  from unittest.mock import patch
  import numpy
  import pandas
  import pytest
  import ray
  from ray.data._internal.block_list import BlockList
  from ray.data._internal.equalize import _equalize
  from ray.data._internal.execution.interfaces import RefBundle
  from ray.data._internal.logical.interfaces import LogicalPlan
  from ray.data._internal.logical.operators.input_data_operator import InputData
  from ray.data._internal.plan import ExecutionPlan
  from ray.data._internal.split import _drop_empty_block_split, _generate_global_split_results, _generate_per_block_split_indices, _generate_valid_indices, _split_at_indices, _split_single_block
  from ray.data._internal.stats import DatasetStats
  from ray.data.block import BlockAccessor, BlockMetadata
  from ray.data.dataset import Dataset
  from ray.data.tests.conftest import *
  from ray.data.tests.util import extract_values
  from ray.tests.conftest import *
label_desc: Use image node_id 22 for calling a global function with example usage: test_private_split_at_indices(ray_start_regular_shared) without return types