code: def test_set_params(self, teardown):
      step = DummyEstimator()
  
      new_params_wrong = {"non_existent_param": 42}
      with pytest.raises(ValueError):
          step.set_params(**new_params_wrong)
  
      new_params = {"x": 456}
      step.set_params(**new_params)
      params = step.get_params()
      expected = {"x": 456, "y": "abc"}
      assert params == expected
  
imports: from contextlib import contextmanager
  from functools import partial
  import pytest
  from sklearn.base import TransformerMixin, BaseEstimator
  from baikal import Input, Step, set_config
  from baikal._core.data_placeholder import DataPlaceholder
  from baikal._core.step import InputStep
  from tests.helpers.fixtures import teardown
  from tests.helpers.dummy_steps import DummyMIMO, DummySISO, DummyEstimator
  from tests.helpers.sklearn_steps import LogisticRegression, PCA
label_desc: Use image node_id 15 for calling the TestStep obj's underlying member method code with example usage: obj.test_set_params(teardown) without return types