code: def test_plots_smoke(continuous_features, categorical_features, task):
      # simple smoke test
      # should be parametrized
      if continuous_features == 0 and categorical_features == 0:
          pytest.skip("Need at least one feature")
      n_samples = 100
      if continuous_features > 0:
          X_cont, y_cont = make_regression(
              n_samples=n_samples,
              n_features=continuous_features,
              n_informative=min(continuous_features, 2),
          )
      if categorical_features > 0:
          X_cat, y_cat = make_regression(
              n_samples=n_samples,
              n_features=categorical_features,
              n_informative=min(categorical_features, 2),
          )
      if continuous_features > 0:
          cont_columns = [
              "asdf_%d_cont" % i for i in range(continuous_features)
          ]
          df_cont = pd.DataFrame(X_cont, columns=cont_columns)
      if categorical_features > 0:
          X_cat = KBinsDiscretizer(encode="ordinal").fit_transform(
              X_cat
          )
          cat_columns = [
              "asdf_%d_cat" % i for i in range(categorical_features)
          ]
          df_cat = pd.DataFrame(X_cat, columns=cat_columns).astype(
              "int"
          )
          df_cat = df_cat.astype("category")
      if categorical_features > 0 and continuous_features > 0:
          X_df = pd.concat([df_cont, df_cat], axis=1)
          y = y_cont + y_cat
      elif categorical_features > 0:
          X_df = df_cat
          y = y_cat
      elif continuous_features > 0:
          X_df = df_cont
          y = y_cont
      else:
          raise ValueError("invalid")
      assert X_df.shape[1] == continuous_features + categorical_features
      X_clean = clean(X_df.copy())
      if X_df.shape[1] == 0:
          y = np.random.uniform(size=n_samples)
      if task == "classification":
          y = np.digitize(y, np.percentile(y, [5, 10, 60, 85]))
      X_clean["target"] = y
      if task == "classification":
          X_clean["target"] = X_clean["target"].astype("category")
      types = detect_types(X_clean)
      column_types = types.T.idxmax()
      assert np.all(column_types[:continuous_features] == "continuous")
      assert np.all(
          column_types[continuous_features:-1] == "categorical"
      )
      if task == "classification":
          assert column_types[-1] == "categorical"
      else:
          assert column_types[-1] == "continuous"
  
      plot(X_clean, target_col="target")
      plt.close("all")
  
imports: import pytest
  import numpy
  import pandas
  import matplotlib.pyplot
  import warnings
  import itertools
  from sklearn.datasets import make_regression, make_blobs, load_digits, fetch_openml, load_diabetes
  from sklearn.preprocessing import KBinsDiscretizer
  from dabl.preprocessing import clean, detect_types, guess_ordinal
  from dabl.plot.supervised import plot, plot_classification_categorical, plot_classification_continuous, plot_regression_categorical, plot_regression_continuous
  from dabl.utils import data_df_from_bunch
  from dabl import set_config
label_desc: Use image node_id 1 for calling a global function with example usage: test_plots_smoke(continuous_features, categorical_features, task) without return types