code: def test_save_pipeline_with_custom():
      train_input, predict_input = get_input_data()
  
      pipeline = get_centered_pipeline()
      pipeline.fit_from_scratch(train_input)
  
      pipeline.save(path="test_pipeline", create_subdir=False)
      json_path_load = create_correct_path("test_pipeline")
      new_pipeline = Pipeline.from_serialized(json_path_load)
      predicted_output_after_export = new_pipeline.predict(
          predict_input
      )
      prediction_after_export = np.array(
          predicted_output_after_export.predict
      )
  
      # recursive deleting
      dir_ = os.path.dirname(json_path_load)
      shutil.rmtree(dir_)
  
      assert prediction_after_export is not None
  
imports: import logging
  import os
  import shutil
  from copy import deepcopy
  from typing import Any
  import numpy
  import pandas
  from examples.advanced.time_series_forecasting.custom_model_tuning import get_fitting_custom_pipeline
  from examples.simple.pipeline_import_export import create_correct_path
  from fedot import Fedot
  from fedot.core.data.data import InputData
  from fedot.core.data.data_split import train_test_data_setup
  from fedot.core.data.multi_modal import MultiModalData
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.repository.dataset_types import DataTypesEnum
  from fedot.core.repository.tasks import Task, TaskTypesEnum, TsForecastingParams
label_desc: Use image node_id 11 for calling a global function with example usage: test_save_pipeline_with_custom() without return types