class_docstr: Test the ProjectionVisualizer base class
class_docstr_tok: ["Test","the","ProjectionVisualizer","base","class"]
docstr: Test visualizer for 3 dimensional discrete plots
docstr_tok: ["Test","visualizer","for","3","dimensional","discrete","plots"]
code: def test_discrete_3d(self):
      """
      Test visualizer for 3 dimensional discrete plots
      """
      X, y = self.discrete
  
      classes = ["a", "b", "c", "d", "e"]
      colors = ["r", "b", "g", "m", "c"]
      visualizer = MockVisualizer(
          projection=3, colors=colors, classes=classes
      )
      visualizer.fit_transform(X, y)
      npt.assert_array_equal(visualizer.classes_, classes)
      visualizer.finalize()
      self.assert_images_similar(visualizer)
  
imports: import pytest
  import numpy.testing
  import matplotlib.pyplot
  from yellowbrick.features.projection import *
  from yellowbrick.exceptions import YellowbrickValueError
  from tests.base import VisualTestCase
  from unittest import mock
  from sklearn.decomposition import PCA
  from sklearn.pipeline import Pipeline
  from sklearn.preprocessing import StandardScaler
label_desc: Use image node_id 5 for calling the TestProjectionVisualizer obj's underlying member method code with example usage: obj.test_discrete_3d() without return types