code: def generate_inputs_from_categories(
      categories=None, n_samples=10, seed=5060, as_array=False
  ):
      if categories is None:
          if as_array:
              categories = {
                  "strings": list(range(1000, 4000, 3)),
                  "integers": list(range(1000)),
              }
          else:
              categories = {
                  "strings": ["Foo", "Bar", "Baz"],
                  "integers": list(range(1000)),
              }
  
      rd = np.random.RandomState(seed)
      pandas_df = pd.DataFrame(
          {
              name: rd.choice(cat, n_samples)
              for name, cat in categories.items()
          }
      )
      ary = from_df_to_numpy(pandas_df)
      if as_array:
          inp_ary = cp.array(ary)
          return inp_ary, ary
      else:
          df = cudf.DataFrame.from_pandas(pandas_df)
          return df, ary
  
imports: import pytest
  from cuml.internals.mem_type import MemoryType
  from cuml.internals.input_utils import input_to_cuml_array, is_array_like
  from cuml.internals.base import Base
  import cuml
  from sklearn.model_selection import train_test_split
  from sklearn.metrics import mean_squared_error, brier_score_loss
  from sklearn.datasets import make_classification, make_regression
  from sklearn import datasets
  from pylibraft.common.cuda import Stream
  from sklearn.datasets import make_regression
  from numba.cuda.cudadrv.devicearray import DeviceNDArray
  from numbers import Number
  from cuml.internals.safe_imports import gpu_only_import_from
  from itertools import dropwhile
  from copy import deepcopy
  from cuml.internals.safe_imports import cpu_only_import
  import inspect
  from textwrap import dedent, indent
  from cuml.internals.safe_imports import gpu_only_import
label_desc: Use image node_id 20 for calling a global function with example usage: generate_inputs_from_categories(categories, n_samples, seed, as_array) and returns: inp_ary,  ary, df,  ary