code: def split_datasets(
      draw,
      datasets,
      test_sizes=None,
  ):
      """
      Split a generic search strategy for datasets into test and train subsets.
  
      The resulting split is guaranteed to have at least one sample in both the
      train and test split respectively.
  
      Note: This function uses the sklearn.model_selection.train_test_split
      function.
  
      See also:
      standard_datasets(): A search strategy for datasets that can serve as input
      to this strategy.
  
      Parameters
      ----------
      datasets: SearchStrategy[dataset]
          A search strategy for datasets.
      test_sizes: SearchStrategy[int | float], default=None
          A search strategy for the test size. Must be provided as a search
          strategy for integers or floats. Integers should be bound by one and
          the sample size, floats should be between 0 and 1.0. Defaults to
          a search strategy that will generate a valid unbiased split.
  
      Returns
      -------
      (X_train, X_test, y_train, y_test): tuple[SearchStrategy[array], ...]
          The train-test split of the input and output samples drawn from
          the provided datasets search strategy.
      """
      X, y = draw(datasets)
      assume(len(X) > 1)
  
      # Determine default value for test_sizes
      if test_sizes is None:
          test_sizes = integers(1, max(1, len(X) - 1))
  
      test_size = draw(test_sizes)
  
      # Check assumptions for test_size
      if isinstance(test_size, float):
          assume(int(len(X) * test_size) > 0)
          assume(int(len(X) * (1.0 - test_size)) > 0)
      elif isinstance(test_size, int):
          assume(1 < test_size < len(X))
  
      return train_test_split(X, y, test_size=test_size)
  
imports: from cuml.internals.array import CumlArray
  from cuml.internals.safe_imports import cpu_only_import, gpu_only_import
  from hypothesis import assume
  from hypothesis.extra.numpy import array_shapes, arrays, floating_dtypes, integer_dtypes
  from hypothesis.strategies import composite, integers, just, none, one_of, sampled_from
  from sklearn.datasets import make_classification, make_regression
  from sklearn.model_selection import train_test_split
label_desc: Use image node_id 14 for calling a global function with example usage: split_datasets(draw, datasets, test_sizes) and returns: train_test_split