code: def test_adapted_and_restored_are_equal(pipeline):
      adapter = PipelineAdapter()
  
      opt_graph = adapter.adapt(pipeline)
      restored_pipeline = adapter.restore(opt_graph)
  
      # assert 2-way mapping doesn't change the structure
      assert pipeline.descriptive_id == restored_pipeline.descriptive_id
      # assert that new pipeline is a different object
      assert id(pipeline) != id(restored_pipeline)
  
imports: from copy import deepcopy
  from random import choice
  import numpy
  import pytest
  from golem.core.dag.graph_node import GraphNode
  from golem.core.dag.graph_verifier import GraphVerifier
  from golem.core.dag.verification_rules import DEFAULT_DAG_RULES
  from golem.core.optimisers.graph import OptNode
  from fedot.core.operations.operation import Operation
  from fedot.core.pipelines.adapters import PipelineAdapter
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from fedot.core.pipelines.pipeline_builder import PipelineBuilder
  from test.unit.dag.test_graph_utils import find_first
  from test.unit.tasks.test_regression import get_synthetic_regression_data
label_desc: Use image node_id 9 for calling a global function with example usage: test_adapted_and_restored_are_equal(pipeline) without return types