class_docstr: Test the MultiFeatureVisualizer base class
class_docstr_tok: ["Test","the","MultiFeatureVisualizer","base","class"]
docstr: Test that a user can supply feature names directly
code: def test_user_supplied_features(self):
      """
      Test that a user can supply feature names directly
      """
      X, y = self.discrete
      features = ["f{}".format(i + 1) for i in range(X.shape[1])]
      oz = MultiFeatureVisualizer(features=features)
  
      assert not hasattr(oz, "features_")
      assert oz.fit(X, y) is oz
      assert hasattr(oz, "features_")
      npt.assert_array_equal(oz.features_, np.asarray(features))
  
imports: import pytest
  import numpy
  import numpy.testing
  from tests.fixtures import Dataset
  from yellowbrick.base import Visualizer
  from yellowbrick.features.base import *
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.datasets import make_classification, make_regression
  from unittest.mock import Mock
label_desc: Use image node_id 2 for calling the TestMultiFeatureVisualizer obj's underlying member method code with example usage: obj.test_user_supplied_features() without return types