code: def test_fit_compute_func(
      self, simple_step, shared_step, dataplaceholders, teardown
  ):
      assert simple_step.fit_compute_func == simple_step.fit_predict
      simple_step.fit_compute_func = simple_step.fit_predict_proba
      assert (
          simple_step.fit_compute_func == simple_step.fit_predict_proba
      )
  
      with pytest.raises(AttributeError):
          shared_step.fit_compute_func
  
      with pytest.raises(AttributeError):
          shared_step.fit_compute_func = shared_step.fit_predict_proba
  
      with pytest.raises(AttributeError):
          # because the step hasn't been called
          DummyEstimator().fit_compute_func
  
      with pytest.raises(AttributeError):
          # because the step hasn't been called
          DummyEstimator().fit_compute_func = lambda x: x
  
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 23 for calling the TestStep obj's underlying member method code with example usage: obj.test_fit_compute_func(simple_step, shared_step, dataplaceholders, teardown) without return types