code: def test_instantiate_with_invalid_compute_func(self):
      class DummyStep(Step):
          def somefunc(self, X):
              pass
  
      class DummyStepWithPredict(Step):
          def predict(self, X):
              pass
  
      class DummyStepWithTransform(Step):
          def transform(self, X):
              pass
  
      x = Input()
  
      with pytest.raises(ValueError):
          step = DummyStep()
          step(x, compute_func="auto")
  
      with pytest.raises(ValueError):
          step = DummyStep()
          step(x, compute_func=123)
  
      step = DummyStep()
      step(x, compute_func="somefunc")
      assert step.compute_func == step.somefunc
  
      def anotherfunc():
          pass
  
      step = DummyStep()
      step(x, compute_func=anotherfunc)
      assert step.compute_func == anotherfunc
  
      step = DummyStepWithPredict()
      step(x)
      assert step.compute_func == step.predict
  
      step = DummyStepWithTransform()
      step(x)
      assert step.compute_func == step.transform
  
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 2 for calling the TestStep obj's underlying member method code with example usage: obj.test_instantiate_with_invalid_compute_func() without return types