class_docstr: DiscriminationThreshold visualizer tests
class_docstr_tok: ["DiscriminationThreshold","visualizer","tests"]
docstr: Test the fit method generates scores, calls draw, and returns self
code: def test_fit(self, mock_draw):
      """
      Test the fit method generates scores, calls draw, and returns self
      """
      X, y = make_classification(
          n_samples=400,
          n_features=20,
          n_informative=8,
          n_redundant=8,
          n_classes=2,
          n_clusters_per_class=4,
          random_state=1221,
      )
  
      visualizer = DiscriminationThreshold(BernoulliNB())
      assert not hasattr(visualizer, "thresholds_")
      assert not hasattr(visualizer, "cv_scores_")
  
      out = visualizer.fit(X, y)
  
      assert out is visualizer
      mock_draw.assert_called_once()
      assert hasattr(visualizer, "thresholds_")
      assert hasattr(visualizer, "cv_scores_")
  
      for metric in METRICS:
          assert metric in visualizer.cv_scores_
          assert "{}_lower".format(metric) in visualizer.cv_scores_
          assert "{}_upper".format(metric) in visualizer.cv_scores_
  
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 6 for calling the TestDiscriminationThreshold obj's underlying member method code with example usage: obj.test_fit(mock_draw) without return types