code: def test_dfs():
      dd = as_apply({"c": 11, "d": 12})
  
      d = {"a": 9, "b": dd, "y": dd, "z": dd + 1}
      ad = as_apply(d)
      order = dfs(ad)
      print([str(o) for o in order])
      assert order[0]._obj == 9
      assert order[1]._obj == 11
      assert order[2]._obj == 12
      assert order[3].named_args[0][0] == "c"
      assert order[4]._obj == 1
      assert order[5].name == "add"
      assert order[6].named_args[0][0] == "a"
      assert len(order) == 7
  
imports: from hyperopt.pyll import base
  from hyperopt.pyll.base import Literal, as_apply, Apply, dfs, scope, rec_eval, p0, Lambda, clone_merge
  from nose import SkipTest
  from nose.tools import assert_raises
  import numpy
label_desc: Use image node_id 12 for calling a global function with example usage: test_dfs() without return types