code: def test_avoid_broker_nodes(abcde):
      r"""Testing structure.
  
      Example::
  
          b0    b1  b2
          |      \  /
          a0      a1
  
      a0 should be run before a1
  
      """
      a, b, c, d, e = abcde
      dsk = {
          (a, 0): (f,),
          (a, 1): (f,),
          (b, 0): (f, (a, 0)),
          (b, 1): (f, (a, 1)),
          (b, 2): (f, (a, 1)),
      }
      o = order(dsk)
      assert o[(a, 0)] < o[(a, 1)]
  
      # Switch name of 0, 1 to ensure that this isn't due to string comparison
      dsk = {
          (a, 1): (f,),
          (a, 0): (f,),
          (b, 0): (f, (a, 1)),
          (b, 1): (f, (a, 0)),
          (b, 2): (f, (a, 0)),
      }
      o = order(dsk)
      assert o[(a, 0)] > o[(a, 1)]
  
      # Switch name of 0, 1 for "b"s too
      dsk = {
          (a, 0): (f,),
          (a, 1): (f,),
          (b, 1): (f, (a, 0)),
          (b, 0): (f, (a, 1)),
          (b, 2): (f, (a, 1)),
      }
      o = order(dsk)
      assert o[(a, 0)] < o[(a, 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 5 for calling a global function with example usage: test_avoid_broker_nodes(abcde) without return types