code: def test_get_basic_pipeline_custom():
      """Tests get_basic_pipeline with custom estimator"""
      pipeline = get_basic_pipeline(
          estimator=SilverkiteEstimator(),
          score_func=EvaluationMetricEnum.MeanAbsolutePercentError.name,
          score_func_greater_is_better=False,
          agg_periods=10,
          agg_func=np.sum,
          relative_error_tolerance=None,
          coverage=None,
          null_model_params={"strategy": "mean"},
      )
  
      expected_score_func, _, _ = get_score_func_with_aggregation(
          score_func=EvaluationMetricEnum.MeanAbsolutePercentError.get_metric_func(),
          agg_periods=10,
          agg_func=np.sum,
          greater_is_better=False,
      )
  
      # checks estimator parameters
      assert isinstance(pipeline.steps[-1][-1], SilverkiteEstimator)
      assert pipeline.steps[-1][-1].fit_algorithm_dict is None
      assert pipeline.steps[-1][-1].extra_pred_cols is None
      assert pipeline.steps[-1][-1].coverage is None
      assert (
          pipeline.steps[-1][-1].null_model_params["strategy"] == "mean"
      )
      with warnings.catch_warnings():
          warnings.simplefilter("ignore")
          assert_eval_function_equal(
              pipeline.steps[-1][-1].score_func, expected_score_func
          )
  
imports: import sys
  import warnings
  from functools import partial
  import numpy
  import pandas
  import pytest
  from scipy.stats import randint
  from sklearn.metrics import mean_absolute_error
  from sklearn.metrics import mean_squared_error
  from sklearn.metrics import median_absolute_error
  from sklearn.pipeline import Pipeline
  from testfixtures import LogCapture
  from greykite.common import constants
  from greykite.common.constants import FRACTION_OUTSIDE_TOLERANCE
  from greykite.common.constants import LOGGER_NAME
  from greykite.common.evaluation import EvaluationMetricEnum
  from greykite.common.evaluation import add_preaggregation_to_scorer
  from greykite.common.evaluation import fraction_outside_tolerance
  from greykite.common.python_utils import assert_equal
  from greykite.common.testing_utils import assert_eval_function_equal
  from greykite.common.testing_utils import generate_df_for_tests
  from greykite.common.testing_utils import generate_df_with_reg_for_tests
  from greykite.framework.constants import CUSTOM_SCORE_FUNC_NAME
  from greykite.framework.constants import CV_REPORT_METRICS_ALL
  from greykite.framework.constants import FRACTION_OUTSIDE_TOLERANCE_NAME
  from greykite.framework.pipeline.utils import get_basic_pipeline
  from greykite.framework.pipeline.utils import get_best_index
  from greykite.framework.pipeline.utils import get_default_time_parameters
  from greykite.framework.pipeline.utils import get_forecast
  from greykite.framework.pipeline.utils import get_hyperparameter_searcher
  from greykite.framework.pipeline.utils import get_score_func_with_aggregation
  from greykite.framework.pipeline.utils import get_scoring_and_refit
  from greykite.framework.utils.framework_testing_utils import assert_proper_grid_search
  from greykite.framework.utils.framework_testing_utils import assert_refit
  from greykite.framework.utils.framework_testing_utils import assert_scoring
  from greykite.sklearn.cross_validation import RollingTimeSeriesSplit
  from greykite.sklearn.estimator.null_model import DummyEstimator
  from greykite.sklearn.estimator.prophet_estimator import ProphetEstimator
  from greykite.sklearn.estimator.silverkite_estimator import SilverkiteEstimator
  from greykite.sklearn.transform.column_selector import ColumnSelector
label_desc: Use image node_id 4 for calling a global function with example usage: test_get_basic_pipeline_custom() without return types