code: def test_large_file_additional_split(
      ray_start_10_cpus_shared, tmp_path
  ):
      ctx = ray.data.context.DataContext.get_current()
      ctx.target_max_block_size = 10 * 1024 * 1024
  
      # ~100MiB of tensor data
      ds = ray.data.range_tensor(1000, shape=(10000,))
      ds.repartition(1).write_parquet(tmp_path)
  
      ds = ray.data.read_parquet(tmp_path, parallelism=1)
      assert ds.num_blocks() == 1
      print(ds.materialize().stats())
      assert (
          5 < ds.materialize().num_blocks() < 20
      )  # Size-based block split
  
      ds = ray.data.read_parquet(tmp_path, parallelism=10)
      assert ds.num_blocks() == 1
      assert 5 < ds.materialize().num_blocks() < 20
  
      ds = ray.data.read_parquet(tmp_path, parallelism=100)
      assert ds.num_blocks() == 1
      assert 50 < ds.materialize().num_blocks() < 200
  
      ds = ray.data.read_parquet(tmp_path, parallelism=1000)
      assert ds.num_blocks() == 1
      assert 500 < ds.materialize().num_blocks() < 2000
  
file_path: ray/python/ray/data/tests/test_splitblocks.py
imports: import numpy
  import pytest
  import ray
  from ray.data._internal.execution.operators.map_transformer import _splitrange
  from ray.data.tests.conftest import *
  from ray.data.tests.conftest import CoreExecutionMetrics, assert_core_execution_metrics_equals, get_initial_core_execution_metrics_snapshot
  from ray.tests.conftest import *
label_desc: Use image node_id 3 for calling a global function with example usage: test_large_file_additional_split(ray_start_10_cpus_shared, tmp_path) without return types