code: def test_digraph4(self):
      # A more complex directed graph
      # from https://web.archive.org/web/20220815055650/https://www.topcoder.com/thrive/articles/Maximum%20Flow:%20Part%20One
      G = nx.DiGraph()
      G.add_edge("x", "a", capacity=3.0)
      G.add_edge("x", "b", capacity=1.0)
      G.add_edge("a", "c", capacity=3.0)
      G.add_edge("b", "c", capacity=5.0)
      G.add_edge("b", "d", capacity=4.0)
      G.add_edge("d", "e", capacity=2.0)
      G.add_edge("c", "y", capacity=2.0)
      G.add_edge("e", "y", capacity=3.0)
  
      H = {
          "x": {"a": 2.0, "b": 1.0},
          "a": {"c": 2.0},
          "b": {"c": 0, "d": 1.0},
          "c": {"y": 2.0},
          "d": {"e": 1.0},
          "e": {"y": 1.0},
          "y": {},
      }
  
      compare_flows_and_cuts(G, "x", "y", H, 3.0)
  
imports: import pytest
  import networkx
  from networkx.algorithms.flow import boykov_kolmogorov, build_flow_dict, build_residual_network, dinitz, edmonds_karp, preflow_push, shortest_augmenting_path
label_desc: Use image node_id 6 for calling the TestMaxflowMinCutCommon obj's underlying member method code with example usage: obj.test_digraph4() without return types