code: def test_multi_ignore_file(tmp_dir, dvc, monkeypatch):
      tmp_dir.gen(
          {"dir": {"subdir": {"should_ignore": "1", "not_ignore": "1"}}}
      )
      tmp_dir.gen(DvcIgnore.DVCIGNORE_FILE, "dir/subdir/*_ignore")
      tmp_dir.gen(
          {"dir": {DvcIgnore.DVCIGNORE_FILE: "!subdir/not_ignore"}}
      )
      dvc._reset()
      result = dvc.dvcignore.find(dvc.fs, tmp_dir / "dir")
      assert set(result) == {
          (tmp_dir / "dir" / "subdir" / "not_ignore").fs_path,
          (tmp_dir / "dir" / DvcIgnore.DVCIGNORE_FILE).fs_path,
      }
  
imports: import os
  import shutil
  from pathlib import Path
  from typing import List
  import pytest
  from dvc.ignore import DvcIgnore, DvcIgnorePatterns
  from dvc.output import OutputIsIgnoredError
  from dvc.pathspec_math import PatternInfo, merge_patterns
  from dvc.repo import Repo
  from dvc.testing.tmp_dir import TmpDir
  from dvc_data.hashfile.build import IgnoreInCollectedDirError
  from dvc_data.hashfile.utils import get_mtime_and_size
label_desc: Use image node_id 18 for calling a global function with example usage: test_multi_ignore_file(tmp_dir, dvc, monkeypatch) without return types