class_docstr: Unit test Smart Predictor class
class_docstr_tok: ["Unit","test","Smart","Predictor","class"]
docstr: Unit test check_dataset_features
docstr_tok: ["Unit","test","check_dataset_features"]
code: def test_check_dataset_features(self):
      """
      Unit test check_dataset_features
      """
      predictor_1 = self.predictor_1
  
      with self.assertRaises(AssertionError):
          predictor_1.check_dataset_features(
              x=pd.DataFrame({"x1": [1], "x2": ["M"], "x3": ["M"]})
          )
  
      with self.assertRaises(ValueError):
          predictor_1.check_dataset_features(
              x=pd.DataFrame({"x1": [1], "x2": [1]})
          )
          predictor_1.check_dataset_features(
              x=pd.DataFrame({"x1": ["M"], "x2": ["M"]})
          )
  
      x = predictor_1.check_dataset_features(
          x=pd.DataFrame({"x2": ["M"], "x1": [1]})
      )
      assert all(
          [
              str(x[feature].dtypes)
              == predictor_1.features_types[feature]
              for feature in predictor_1.features_types.keys()
          ]
      )
  
      features_order = []
      for order in range(
          min(predictor_1.columns_dict.keys()),
          max(predictor_1.columns_dict.keys()) + 1,
      ):
          features_order.append(predictor_1.columns_dict[order])
      assert all(x.columns == features_order)
  
      predictor_1.check_dataset_features(
          x=pd.DataFrame({"x1": [1], "x2": ["M"]})
      )
  
imports: import unittest
  from shapash.explainer.smart_predictor import SmartPredictor
  from shapash import SmartExplainer
  from shapash.explainer.smart_state import SmartState
  from shapash.explainer.multi_decorator import MultiDecorator
  from shapash.backend import ShapBackend
  import os
  from os import path
  from pathlib import Path
  import pandas
  import numpy
  import catboost
  from catboost import Pool
  import category_encoders
  from unittest.mock import patch
  import types
  from sklearn.compose import ColumnTransformer
  import sklearn.preprocessing
  import shap
label_desc: Use image node_id 35 for calling the TestSmartPredictor obj's underlying member method code with example usage: obj.test_check_dataset_features() without return types