code: def test_extract_subtree_root():
      pipeline = create_four_depth_pipeline()
      pipeline_template = PipelineTemplate(pipeline)
  
      expected_types = ["knn", "logit", "knn", "lda", "rf"]
      new_root_node_id = 4
  
      root_node = extract_subtree_root(
          root_operation_id=new_root_node_id,
          pipeline_template=pipeline_template,
      )
  
      sub_pipeline = Pipeline(root_node)
      actual_types = [
          node.operation.operation_type for node in sub_pipeline.nodes
      ]
  
      assertion_list = [
          True
          if expected_types[index] == actual_types[index]
          else False
          for index in range(len(expected_types))
      ]
      assert all(assertion_list)
  
imports: import json
  import os
  import shutil
  import numpy
  import pytest
  from sklearn.metrics import mean_absolute_error
  from fedot import Fedot
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.pipelines.template import PipelineTemplate, extract_subtree_root
  from fedot.core.repository.tasks import Task, TaskTypesEnum
  from fedot.core.utils import fedot_project_root
  from test.integration.api.test_main_api import get_dataset
  from test.unit.data_operations.test_data_operations_implementations import get_mixed_data
  from test.unit.multimodal.data_generators import get_single_task_multimodal_tabular_data
  from test.unit.pipelines.test_decompose_pipelines import get_classification_data
  from test.unit.preprocessing.test_preprocessing_through_api import data_with_spaces_and_nans_in_features
  from test.unit.tasks.test_forecasting import get_multiscale_pipeline, get_simple_ts_pipeline, get_ts_data
label_desc: Use image node_id 24 for calling a global function with example usage: test_extract_subtree_root() without return types