code: def test_split_dataframe(train_size, shuffle):
      X = cudf.DataFrame({"x": range(100)})
      y = cudf.Series(([0] * (100 // 2)) + ([1] * (100 // 2)))
  
      X_train, X_test, y_train, y_test = train_test_split(
          X, y, train_size=train_size, shuffle=shuffle
      )
      assert (
          len(X_train)
          == len(y_train)
          == pytest.approx(train_size * len(X))
      )
      assert (
          len(X_test)
          == len(y_test)
          == pytest.approx((1 - train_size) * len(X))
      )
      assert all(X_train.index.to_pandas() == y_train.index.to_pandas())
      assert all(X_test.index.to_pandas() == y_test.index.to_pandas())
  
      X_reconstructed = cudf.concat([X_train, X_test]).sort_values(
          by=["x"]
      )
      y_reconstructed = y_train.append(y_test).sort_values()
  
      assert all(X_reconstructed.reset_index(drop=True) == X)
      out = (
          y_reconstructed.reset_index(drop=True).values_host
          == y.values_host
      )
      assert all(out)
  
imports: from cuml.internals.safe_imports import gpu_only_import_from
  from cuml.datasets import make_classification
  from cuml.model_selection import train_test_split
  import pytest
  from cuml.internals.safe_imports import cpu_only_import
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 1 for calling a global function with example usage: test_split_dataframe(train_size, shuffle) without return types