code: def test_hdbscan_metric_parameter_input(metric, supported):
      """
      tests how valid and invalid arguments to the metric
      parameter are handled
      """
      X, y = make_blobs(n_samples=10000, n_features=15, random_state=12)
  
      clf = HDBSCAN(metric=metric)
      if supported:
          clf.fit(X)
      else:
          with pytest.raises(ValueError):
              clf.fit(X)
  
imports: from cuml.internals.safe_imports import gpu_only_import
  from sklearn.model_selection import train_test_split
  from sklearn import datasets
  from hdbscan.plots import CondensedTree
  import hdbscan
  from cuml.internals import logger
  import pytest
  from cuml.cluster.hdbscan import HDBSCAN, condense_hierarchy
  from cuml.cluster.hdbscan.prediction import all_points_membership_vectors, approximate_predict, membership_vector
  from sklearn.datasets import make_blobs
  from cuml.metrics import adjusted_rand_score
  from cuml.testing.utils import get_pattern, array_equal
  from cuml.internals.safe_imports import cpu_only_import
label_desc: Use image node_id 12 for calling a global function with example usage: test_hdbscan_metric_parameter_input(metric, supported) without return types