code: def test_recursive_depth(self, test_env_async):
      tmpl = test_env_async.from_string(
          "{% for item in seq recursive %}[{{ loop.depth }}:{{ item.a }}"
          "{% if item.b %}<{{ loop(item.b) }}>{% endif %}]{% endfor %}"
      )
      assert (
          tmpl.render(
              seq=[
                  dict(a=1, b=[dict(a=1), dict(a=2)]),
                  dict(a=2, b=[dict(a=1), dict(a=2)]),
                  dict(a=3, b=[dict(a="a")]),
              ]
          )
          == "[1:1<[2:1][2:2]>][1:2<[2:1][2:2]>][1:3<[2:a]>]"
      )
  
imports: import asyncio
  import pytest
  from jinja2 import DictLoader
  from jinja2 import Environment
  from jinja2 import Template
  from jinja2.asyncsupport import auto_aiter
  from jinja2.exceptions import TemplateNotFound
  from jinja2.exceptions import TemplatesNotFound
  from jinja2.exceptions import UndefinedError
label_desc: Use image node_id 14 for calling the TestAsyncForLoop obj's underlying member method code with example usage: obj.test_recursive_depth(test_env_async) without return types