code: def test_pipeline_builder_with_joined_branches():
      primary_a = PipelineNode("operation_a")
      secondary_f = PipelineNode("operation_f", nodes_from=[primary_a])
      secondary_a = PipelineNode("operation_a", nodes_from=[primary_a])
      joined_f = PipelineNode(
          "operation_f", nodes_from=[secondary_f, secondary_a]
      )  # joined
  
      # joined branch
      assert graphs_same(
          Pipeline([secondary_f, secondary_a]),
          PipelineBuilder()
          .add_node("operation_a")
          .add_branch("operation_a", "operation_f")
          .join_branches(None)
          .build(),
      )
      assert graphs_same(
          Pipeline(joined_f),
          PipelineBuilder()
          .add_node("operation_a")
          .add_branch("operation_a", "operation_f")
          .join_branches("operation_f")
          .build(),
      )
  
imports: from copy import copy
  from fedot.core.pipelines.pipeline_builder import PipelineBuilder, merge_pipeline_builders
  from fedot.core.pipelines.node import PipelineNode
  from fedot.core.pipelines.pipeline import Pipeline
  from test.unit.dag.test_graph_utils import graphs_same
label_desc: Use image node_id 6 for calling a global function with example usage: test_pipeline_builder_with_joined_branches() without return types