code: def test_finding_side_root_node():
      """
       The function tests finding side root node in pipeline with the following structure:
  
       ↑    ->   logit      ->
       ↑          ↓                  ↓
      scaling     ↓                   xgboost -> final prediction
       ↓          ↓                  ↑
       ↓    -> decompose -> rfr ->
  
       Where logit - logistic regression, rfr - random forest regression, xgboost - xg boost classifier
      """
  
      reg_root_node = "rfr"
  
      pipeline = generate_pipeline_with_decomposition(
          "scaling", "logit"
      )
      reg_pipeline = pipeline.pipeline_for_side_task(
          task_type=TaskTypesEnum.regression
      )
  
      assert (
          reg_pipeline.root_node.operation.operation_type
          == reg_root_node
      )
  
imports: from itertools import product
  import numpy
  from examples.simple.classification.classification_with_tuning import get_classification_dataset
  from examples.advanced.decompose.refinement_forecast_example import get_refinement_pipeline
  from fedot.core.data.data import InputData
  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
  from fedot.preprocessing.preprocessing import DataPreprocessor
  from test.unit.tasks.test_classification import get_iris_data
  from test.unit.tasks.test_forecasting import get_ts_data
  from test.unit.preprocessing.test_preprocessors import data_with_complicated_types
label_desc: Use image node_id 5 for calling a global function with example usage: test_finding_side_root_node() without return types