code: def test_ls_remote_repo_recursive(erepo_dir):
      with erepo_dir.chdir():
          erepo_dir.scm_gen(FS_STRUCTURE, commit="init")
          erepo_dir.dvc_gen(DVC_STRUCTURE, commit="dvc")
  
      url = f"file://{erepo_dir.as_posix()}"
      files = Repo.ls(url, recursive=True)
      match_files(
          files,
          (
              ((".dvcignore",), False),
              ((".gitignore",), False),
              (("README.md",), False),
              (("structure.xml.dvc",), False),
              (("model", "script.py"), False),
              (("model", "train.py"), False),
              (("model", "people.csv.dvc"), False),
              (("data", "subcontent", "data.xml.dvc"), False),
              (
                  ("data", "subcontent", "statistics", "data.csv.dvc"),
                  False,
              ),
              (("data", "subcontent", "statistics", "data.csv"), True),
              (
                  ("data", "subcontent", "statistics", ".gitignore"),
                  False,
              ),
              (("data", "subcontent", "data.xml"), True),
              (("data", "subcontent", ".gitignore"), False),
              (("model", "people.csv"), True),
              (("model", ".gitignore"), False),
              (("structure.xml",), True),
          ),
      )
  
imports: import os
  import shutil
  import textwrap
  from operator import itemgetter
  import pytest
  from dvc.repo import Repo
  from dvc.scm import CloneError
label_desc: Use image node_id 22 for calling a global function with example usage: test_ls_remote_repo_recursive(erepo_dir) without return types