class_docstr: DiscriminationThreshold visualizer tests
class_docstr_tok: ["DiscriminationThreshold","visualizer","tests"]
docstr: Assert an exception is raised on bad exclude param
code: def test_bad_exclude(self):
      """
      Assert an exception is raised on bad exclude param
      """
      with pytest.raises(
          YellowbrickValueError, match="not a valid metric"
      ):
          DiscriminationThreshold(NuSVC(), exclude="foo")
  
      with pytest.raises(
          YellowbrickValueError, match="not a valid metric"
      ):
          DiscriminationThreshold(
              NuSVC(), exclude=["queue_rate", "foo"]
          )
  
imports: import sys
  import pytest
  import yellowbrick
  import matplotlib.pyplot
  from yellowbrick.classifier.threshold import *
  from yellowbrick.datasets import load_occupancy, load_spam
  from yellowbrick.utils import is_probabilistic, is_classifier
  from unittest.mock import patch
  from tests.base import VisualTestCase
  from numpy.testing import assert_array_equal
  from sklearn.base import ClassifierMixin
  from sklearn.svm import LinearSVC, NuSVC
  from sklearn.impute import SimpleImputer
  from sklearn.pipeline import Pipeline
  from sklearn.datasets import make_classification
  from sklearn.ensemble import RandomForestClassifier
  from sklearn.naive_bayes import BernoulliNB, GaussianNB
  from sklearn.linear_model import Ridge, LogisticRegression
  from sklearn.model_selection import StratifiedShuffleSplit
label_desc: Use image node_id 16 for calling the TestDiscriminationThreshold obj's underlying member method code with example usage: obj.test_bad_exclude() without return types