code: def test_gmdi_default(self):
      # Test number of engineered features without drop_features
      gmdi_transformer = MDIPlusDefaultTransformer(
          tree_model=self.tree_model, drop_features=False
      )
      assert (
          gmdi_transformer.fit_transform(self.X).get_all_data().shape[1]
          == self.p + self.n_internal_nodes
      )
      # Test number of engineered features with drop_features
      gmdi_transformer = MDIPlusDefaultTransformer(
          tree_model=self.tree_model, drop_features=True
      )
  
      assert gmdi_transformer.fit_transform(
          self.X
      ).get_all_data().shape[1] == self.n_internal_nodes + len(
          gmdi_transformer.block_transformer_list[0].n_splits
      )
      # Test scaling
      tree_transformer = TreeTransformer(self.tree_model)
      tree_transformer_max = max(
          tree_transformer.fit_transform_one_feature(self.X, 0).std(
              axis=0
          )
      )
      composite_transformer_rescaling = (
          gmdi_transformer.fit_transform_one_feature(self.X, 0).std(
              axis=0
          )[3]
      )
      assert np.isclose(
          tree_transformer_max, composite_transformer_rescaling
      )
      gmdi_transformer = MDIPlusDefaultTransformer(
          tree_model=self.tree_model,
          rescale_mode="mean",
          drop_features=True,
      )
      tree_transformer_mean = np.mean(
          tree_transformer.fit_transform_one_feature(self.X, 0).std(
              axis=0
          )
      )
      composite_transformer_rescaling = (
          gmdi_transformer.fit_transform_one_feature(self.X, 0).std(
              axis=0
          )[3]
      )
      assert np.isclose(
          tree_transformer_mean, composite_transformer_rescaling
      )
  
imports: import copy
  import numpy
  import random
  import scipy
  from sklearn.linear_model import Ridge, LinearRegression
  from sklearn.tree import DecisionTreeRegressor
  from sklearn.ensemble import RandomForestRegressor, RandomForestClassifier
  from sklearn.metrics import r2_score, log_loss, roc_auc_score, mean_squared_error
  from imodels.importance.block_transformers import IdentityTransformer, TreeTransformer, CompositeTransformer, MDIPlusDefaultTransformer
  from imodels.importance.ppms import RidgeRegressorPPM, LogisticClassifierPPM, RobustRegressorPPM
  from imodels.importance.mdi_plus import TreeMDIPlus, ForestMDIPlus
  from imodels.importance.rf_plus import RandomForestPlusClassifier
label_desc: Use image node_id 5 for calling the TestTransformers obj's underlying member method code with example usage: obj.test_gmdi_default() without return types