class_docstr: Unit test Smart Predictor class
class_docstr_tok: ["Unit","test","Smart","Predictor","class"]
docstr: Test init smart predictor with groups of features
docstr_tok: ["Test","init","smart","predictor","with","groups","of","features"]
code: def test_init_2(self):
      """
      Test init smart predictor with groups of features
      """
      predictor_1 = SmartPredictor(
          self.features_dict_w_groups,
          self.clf_1,
          self.columns_dict_1,
          self.backend_1,
          self.features_types_1,
          self.label_dict_1,
          self.preprocessing_1,
          self.postprocessing_1,
          self.features_groups,
      )
  
      assert hasattr(predictor_1, "model")
      assert hasattr(predictor_1, "backend")
      assert hasattr(predictor_1, "features_dict")
      assert hasattr(predictor_1, "label_dict")
      assert hasattr(predictor_1, "_case")
      assert hasattr(predictor_1, "_classes")
      assert hasattr(predictor_1, "columns_dict")
      assert hasattr(predictor_1, "features_types")
      assert hasattr(predictor_1, "preprocessing")
      assert hasattr(predictor_1, "postprocessing")
      assert hasattr(predictor_1, "mask_params")
      assert hasattr(predictor_1, "features_groups")
  
      assert predictor_1.model == self.clf_1
      assert predictor_1.backend == self.backend_1
      assert predictor_1.features_dict == self.features_dict_w_groups
      assert predictor_1.label_dict == self.label_dict_1
      assert predictor_1._case == "classification"
      assert predictor_1._classes == [0, 1]
      assert predictor_1.columns_dict == self.columns_dict_1
      assert predictor_1.preprocessing == self.preprocessing_1
      assert predictor_1.postprocessing == self.postprocessing_1
  
      mask_params = {
          "features_to_hide": None,
          "threshold": None,
          "positive": True,
          "max_contrib": 1,
      }
      predictor_1.mask_params = mask_params
      assert predictor_1.mask_params == mask_params
  
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 5 for calling the TestSmartPredictor obj's underlying member method code with example usage: obj.test_init_2() without return types