code: def test_unfoldr():
      a = relay.TypeVar("a")
      b = relay.TypeVar("b")
      expected_type = relay.FuncType(
          [relay.FuncType([a], optional(relay.TupleType([a, b]))), a],
          rlist(b),
          [a, b],
      )
  
      x = relay.Var("x", nat())
      n = relay.Var("n", nat())
      count_down = relay.Function(
          [x],
          relay.Match(
              x,
              [
                  relay.Clause(
                      relay.PatternConstructor(
                          s, [relay.PatternVar(n)]
                      ),
                      some(relay.Tuple([n, x])),
                  ),
                  relay.Clause(relay.PatternConstructor(z, []), none()),
              ],
          ),
      )
  
      res = eval(unfoldr(count_down, make_nat_expr(prelude, 3)))
      unfolded = to_list(res)
  
      assert len(unfolded) == 3
      assert count(unfolded[0]) == 3
      assert count(unfolded[1]) == 2
      assert count(unfolded[2]) == 1
  
imports: import pytest
  import tvm
  from tvm import relay
  from tvm.relay import testing
  from tvm.relay.backend.interpreter import ConstructorValue
  from tvm.relay import create_executor
  from tvm.relay.prelude import Prelude, StaticTensorArrayOps
  from tvm.relay.testing import count, make_nat_value, make_nat_expr
  import numpy
label_desc: Use image node_id 25 for calling a global function with example usage: test_unfoldr() without return types