code: def test_avoid_upwards_branching(abcde):
      r"""
           a1
           |
           a2
           |
           a3    d1
          /  \  /
        b1    c1
        |     |
        b2    c2
              |
              c3
  
      Prefer b1 over c1 because it won't stick around waiting for d1 to complete
      """
      a, b, c, d, e = abcde
      dsk = {
          (a, 1): (f, (a, 2)),
          (a, 2): (f, (a, 3)),
          (a, 3): (f, (b, 1), (c, 1)),
          (b, 1): (f, (b, 2)),
          (c, 1): (f, (c, 2)),
          (c, 2): (f, (c, 3)),
          (d, 1): (f, (c, 1)),
      }
  
      o = order(dsk)
      assert o[(b, 1)] < o[(c, 1)]
  
imports: import pytest
  from flash.core.serve.dag.order import ndependencies, order
  from flash.core.serve.dag.task import get, get_deps
  from flash.core.serve.dag.utils_test import add, inc
  from flash.core.utilities.imports import _TOPIC_SERVE_AVAILABLE
label_desc: Use image node_id 7 for calling a global function with example usage: test_avoid_upwards_branching(abcde) without return types