code: def test_recursion():
      scope.define(
          Lambda(
              "Fact",
              [("x", p0)],
              expr=scope.switch(
                  p0 > 1, 1, p0 * base.apply("Fact", p0 - 1)
              ),
          )
      )
      print(scope.Fact(3))
      assert rec_eval(scope.Fact(3)) == 6
  
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 19 for calling a global function with example usage: test_recursion() without return types