code: def test_backwards_flow(method):
      # This example causes backwards flow between vertices 3 and 4,
      # and so this test ensures that we handle that accordingly. See
      #     https://stackoverflow.com/q/38843963/5085211
      # for more information.
      graph = csr_matrix(
          [
              [0, 10, 0, 0, 10, 0, 0, 0],
              [0, 0, 10, 0, 0, 0, 0, 0],
              [0, 0, 0, 10, 0, 0, 0, 0],
              [0, 0, 0, 0, 0, 0, 0, 10],
              [0, 0, 0, 10, 0, 10, 0, 0],
              [0, 0, 0, 0, 0, 0, 10, 0],
              [0, 0, 0, 0, 0, 0, 0, 10],
              [0, 0, 0, 0, 0, 0, 0, 0],
          ]
      )
      res = maximum_flow(graph, 0, 7, method=method)
      assert res.flow_value == 20
      expected_flow = np.array(
          [
              [0, 10, 0, 0, 10, 0, 0, 0],
              [-10, 0, 10, 0, 0, 0, 0, 0],
              [0, -10, 0, 10, 0, 0, 0, 0],
              [0, 0, -10, 0, 0, 0, 0, 10],
              [-10, 0, 0, 0, 0, 10, 0, 0],
              [0, 0, 0, 0, -10, 0, 10, 0],
              [0, 0, 0, 0, 0, -10, 0, 10],
              [0, 0, 0, -10, 0, 0, -10, 0],
          ]
      )
      assert_array_equal(res.flow.toarray(), expected_flow)
  
imports: import numpy
  from numpy.testing import assert_array_equal
  import pytest
  from scipy.sparse import csr_matrix, csc_matrix
  from scipy.sparse.csgraph import maximum_flow
  from scipy.sparse.csgraph._flow import _add_reverse_edges, _make_edge_pointers, _make_tails
label_desc: Use image node_id 10 for calling a global function with example usage: test_backwards_flow(method) without return types