code: def test_w_prep_set_params():
      """[Model Selection] Test run with preprocessing, sep param dists."""
      evl = Evaluator(
          mape_scorer, cv=5, shuffle=False, random_state=100, verbose=2
      )
  
      params = {
          "no.ols": {"offset": randint(3, 6)},
          "pr.ols": {"offset": randint(1, 3)},
      }
  
      with open(os.devnull, "w") as f, redirect_stdout(f):
          evl.fit(
              X,
              y,
              estimators={"pr": [OLS()], "no": [OLS()]},
              param_dicts=params,
              preprocessing={"pr": [Scale()], "no": []},
              n_iter=10,
          )
  
      np.testing.assert_approx_equal(
          evl.results["test_score-m"]["no.ols"], -18.684229451043198
      )
  
      np.testing.assert_approx_equal(
          evl.results["test_score-m"]["pr.ols"], -7.2594502123869491
      )
      assert evl.results["params"]["no.ols"]["offset"] == 3
      assert evl.results["params"]["pr.ols"]["offset"] == 1
  
file_path: mlens/mlens/model_selection/tests/test_model_selection.py
imports: import os
  import numpy
  from mlens.model_selection import Evaluator, benchmark
  from mlens.metrics import mape, make_scorer
  from mlens.utils.exceptions import FitFailedWarning
  from mlens.utils.dummy import OLS, Scale
  from mlens.testing import Data
  from scipy.stats import randint
label_desc: Use image node_id 9 for calling a global function with example usage: test_w_prep_set_params() without return types