code: def test_parse_paths(self):
      # Create a file and a directory to test on
      filepath = os.path.join(self.temp_dir, "test.txt")
      dirpath = os.path.join(self.temp_dir, "test_dir")
      dirfilepath = os.path.join(dirpath, "test.txt")
      with open(filepath, "wb") as f:
          f.write(to_bytes("test" + "\n"))
      os.makedirs(dirpath)
      with open(dirfilepath, "wb") as f:
          f.write(to_bytes("test" + "\n"))
      # Define user paths
      default_source_prefix = self.temp_dir
      dest_prefix = os.path.join(self.temp_dir, "some_dest_dir")
      # Test default source path and default dest path
      paths = ["test.txt", "test_dir"]
      result = parse_paths(default_source_prefix, paths, dest_prefix)
      assert result[0] == [
          (
              os.path.join(default_source_prefix, "test.txt"),
              os.path.join(dest_prefix, "test.txt"),
          )
      ]
      assert result[1] == [
          (
              os.path.join(default_source_prefix, "test_dir"),
              os.path.join(dest_prefix, "test_dir"),
          )
      ]
      assert result[2] == [
          (os.path.join(default_source_prefix, "test.txt"), "test.txt")
      ]
      assert result[3] == [
          (os.path.join(default_source_prefix, "test_dir"), "test_dir")
      ]
      # Test absolute source path and no dest path
      paths = [filepath, dirpath]
      result = parse_paths(default_source_prefix, paths, dest_prefix)
      assert result[0] == [
          (filepath, os.path.join(dest_prefix, "test.txt"))
      ]
      assert result[1] == [
          (dirpath, os.path.join(dest_prefix, "test_dir"))
      ]
      assert result[2] == [
          (os.path.join(default_source_prefix, "test.txt"), "test.txt")
      ]
      assert result[3] == [
          (os.path.join(default_source_prefix, "test_dir"), "test_dir")
      ]
      # Test default source path and given dest path
      paths = ["test.txt>new_name.txt", "test_dir>new_dirname"]
      result = parse_paths(default_source_prefix, paths, dest_prefix)
      assert result[0] == [
          (
              os.path.join(default_source_prefix, "test.txt"),
              os.path.join(dest_prefix, "new_name.txt"),
          )
      ]
      assert result[1] == [
          (
              os.path.join(default_source_prefix, "test_dir"),
              os.path.join(dest_prefix, "new_dirname"),
          )
      ]
      assert result[2] == [
          (
              os.path.join(default_source_prefix, "test.txt"),
              "new_name.txt",
          )
      ]
      assert result[3] == [
          (
              os.path.join(default_source_prefix, "test_dir"),
              "new_dirname",
          )
      ]
      # Test failure if path does not exist
      paths = ["sldfkj.txt>new_name.txt", "sldkfj>new_dirname"]
      failed = False
      try:
          parse_paths(default_source_prefix, paths, dest_prefix)
      except PathDoesNotExist:
          failed = True
      assert failed
      # Test success absolute path and destination
      paths = [filepath + ">new_name.txt", dirpath + ">new_dirname"]
      result = parse_paths(default_source_prefix, paths, dest_prefix)
      assert result[0] == [
          (filepath, os.path.join(dest_prefix, "new_name.txt"))
      ]
      assert result[1] == [
          (dirpath, os.path.join(dest_prefix, "new_dirname"))
      ]
      assert result[2] == [
          (
              os.path.join(default_source_prefix, "test.txt"),
              "new_name.txt",
          )
      ]
      assert result[3] == [
          (
              os.path.join(default_source_prefix, "test_dir"),
              "new_dirname",
          )
      ]
  
imports: import os
  import time
  import tempfile
  import platform
  import datetime
  from pytz import timezone
  from io import open
  from datmo.core.util.misc_functions import bytes2human, create_unique_hash, mutually_exclusive, is_project_dir, find_project_dir, grep, prettify_datetime, format_table, parse_cli_key_value, convert_keys_to_string, get_datmo_temp_path, parse_path, parse_paths, list_all_filepaths
  from datmo.core.util.exceptions import MutuallyExclusiveArguments, RequiredArgumentMissing, InvalidDestinationName, PathDoesNotExist, TooManyArgumentsFound
label_desc: Use image node_id 14 for calling the TestMiscFunctions obj's underlying member method code with example usage: obj.test_parse_paths() without return types