class_docstr: Test the PCA visualizer
class_docstr_tok: ["Test","the","PCA","visualizer"]
docstr: Test the PCA 3D biplot (proj_features).
docstr_tok: ["Test","the","PCA","3D","biplot","(","proj_features",")","."]
code: def test_biplot_3d(self):
      """
      Test the PCA 3D biplot (proj_features).
      """
      params = {
          "features": list("ABCDEFGHIKLM"),
          "random_state": 800,
          "proj_features": True,
          "projection": 3,
      }
      visualizer = PCA(**params).fit(*self.discrete)
      pca_array = visualizer.transform(*self.discrete)
  
      # Image comparison tests
      self.assert_images_similar(visualizer, tol=5)
  
      # Assert PCA transformation occurred successfully
      assert pca_array.shape == (self.discrete.X.shape[0], 3)
  
imports: import sys
  import pytest
  import numpy
  import numpy.testing
  from unittest import mock
  from tests.base import VisualTestCase, IS_WINDOWS_OR_CONDA
  from yellowbrick.features.pca import *
  from yellowbrick.exceptions import YellowbrickError, NotFitted
label_desc: Use image node_id 13 for calling the TestPCA obj's underlying member method code with example usage: obj.test_biplot_3d() without return types