code: def test_diff_dirty(tmp_dir, scm, dvc):
      tmp_dir.dvc_gen(
          {
              "file": "file_content",
              "dir": {"dir_file1": "dir file content"},
          },
          commit="initial",
      )
  
      (tmp_dir / "file").unlink()
      tmp_dir.gen({"dir": {"dir_file2": "dir file 2 content"}})
      tmp_dir.dvc_gen("new_file", "new_file_content")
  
      result = dvc.diff()
  
      assert result == {
          "added": [
              {
                  "hash": digest("dir file 2 content"),
                  "path": os.path.join("dir", "dir_file2"),
              },
              {
                  "hash": "86d049de17c76ac44cdcac146042ec9b",
                  "path": "new_file",
              },
          ],
          "deleted": [
              {
                  "hash": "7f0b6bb0b7e951b7fd2b2a4a326297e1",
                  "path": "file",
              }
          ],
          "modified": [
              {
                  "hash": {
                      "new": "38175ad60f0e58ac94e0e2b7688afd81.dir",
                      "old": "92daf39af116ca2fb245acaeb2ae65f7.dir",
                  },
                  "path": os.path.join("dir", ""),
              }
          ],
          "not in cache": [],
          "renamed": [],
      }
  
imports: import hashlib
  import os
  import pytest
  from funcy import first
  from dvc.exceptions import DvcException
  from dvc.utils.fs import remove
label_desc: Use image node_id 13 for calling a global function with example usage: test_diff_dirty(tmp_dir, scm, dvc) without return types