code: def test_split_row_groups(tmpdir, row_groups, index):
      nparts = 2
      df_size = 100
      row_group_size = 5
      file_row_groups = 10  # Known apriori
      npartitions_expected = math.ceil(file_row_groups / row_groups) * 2
  
      df = pd.DataFrame(
          {
              "a": np.random.choice(
                  ["apple", "banana", "carrot"], size=df_size
              ),
              "b": np.random.random(size=df_size),
              "c": np.random.randint(1, 5, size=df_size),
              "index": np.arange(0, df_size),
          }
      )
      if index:
          df = df.set_index("index")
  
      ddf1 = dd.from_pandas(df, npartitions=nparts)
      ddf1.to_parquet(
          str(tmpdir),
          engine="pyarrow",
          row_group_size=row_group_size,
          write_metadata_file=True,
      )
  
      ddf2 = dask_cudf.read_parquet(
          str(tmpdir),
          split_row_groups=row_groups,
      )
  
      dd.assert_eq(ddf1, ddf2, check_divisions=False)
  
      assert ddf2.npartitions == npartitions_expected
  
imports: import glob
  import math
  import os
  import numpy
  import pandas
  import pytest
  import dask
  from dask import dataframe
  from dask.utils import natural_sort_key
  import cudf
  import dask_cudf
label_desc: Use image node_id 17 for calling a global function with example usage: test_split_row_groups(tmpdir, row_groups, index) without return types