code: def test_topology_graph_build_two_joins(two_joins_graph):
      graph = TopologyGraph(two_joins_graph)
      assert len(graph.origin_nodes) == 2
      origin_names = [node.name for node in graph.origin_nodes]
      assert set(origin_names) == {"p0", "p1"}
  
      node_p0 = graph.origin_nodes[origin_names.index("p0")]
      assert node_p0.name == "p0"
      assert node_p0.number_of_parts == 1
      assert len(node_p0.outgoing_nodes) == 1
      assert not node_p0.floating
  
      node_p1 = graph.origin_nodes[origin_names.index("p1")]
      assert node_p1.name == "p1"
      assert node_p1.number_of_parts == 1
      assert len(node_p1.outgoing_nodes) == 1
      assert not node_p1.floating
  
      assert id(node_p0.outgoing_nodes[0]) == id(
          node_p1.outgoing_nodes[0]
      )
  
      joiner_deployment = node_p0.outgoing_nodes[0]
      assert joiner_deployment.name == "joiner_1"
      assert len(joiner_deployment.outgoing_nodes) == 2
      assert joiner_deployment.number_of_parts == 2
      assert not joiner_deployment.floating
  
      joiner_outgoing_list = [
          node.name for node in joiner_deployment.outgoing_nodes
      ]
  
      node_p2 = joiner_deployment.outgoing_nodes[
          joiner_outgoing_list.index("p2")
      ]
      assert node_p2.name == "p2"
      assert len(node_p2.outgoing_nodes) == 1
      assert node_p2.number_of_parts == 1
      assert not node_p2.floating
  
      node_p3 = joiner_deployment.outgoing_nodes[
          joiner_outgoing_list.index("p3")
      ]
      assert node_p3.name == "p3"
      assert len(node_p3.outgoing_nodes) == 1
      assert node_p3.number_of_parts == 1
      assert not node_p3.floating
  
      assert id(node_p2.outgoing_nodes[0]) == id(
          node_p3.outgoing_nodes[0]
      )
      node_p4 = node_p2.outgoing_nodes[0]
      assert node_p4.name == "p4"
      assert len(node_p4.outgoing_nodes) == 1
      assert node_p4.outgoing_nodes[0].name == "__end_gateway__"
      assert node_p4.number_of_parts == 2
      assert not node_p4.floating
  
imports: import asyncio
  import copy
  from collections import defaultdict
  from typing import List
  import pytest
  from docarray import Document, DocumentArray
  from jina.serve.runtimes.gateway.graph.topology_graph import TopologyGraph
  from jina.types.request import Request
  from jina.types.request.data import DataRequest
label_desc: Use image node_id 14 for calling a global function with example usage: test_topology_graph_build_two_joins(two_joins_graph) without return types