code: def test_robust_loo_predictions(self):
      gmdi_transformer = MDIPlusDefaultTransformer(
          tree_model=self.tree_model
      )
      blocked_data = gmdi_transformer.fit_transform(self.X)
      robust_ppm = RobustRegressorPPM(
          loo=True, alpha_grid=np.logspace(-4, 3, 100)
      )
      robust_ppm.fit(blocked_data.get_all_data(), self.y)
      # Test full prediction
      assert np.isclose(
          robust_ppm.predict_full(blocked_data)[0], 0.6575704560264011
      )
      # Test partial prediction
      assert np.isclose(
          robust_ppm.predict_partial_k(blocked_data, 0, mode="keep_k")[
              0
          ],
          0.4813493202027731,
      )
      # Test intercept model
      assert np.isclose(
          robust_ppm.predict_partial_k(blocked_data, 1, mode="keep_k")[
              1
          ],
          0.1531074473707865,
      )
  
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 6 for calling the TestPPM obj's underlying member method code with example usage: obj.test_robust_loo_predictions() without return types