def working(scratch):
    """Create the files needed for xdmf api testing."""
    
    # working directory for testing
    xdmf_dir = scratch.joinpath('xdmf')
    xdmf_dir.mkdir()

    # a set of plot files
    xdmf_dir.joinpath('INS_LidDr_Cavity_hdf5_grd_0000').touch()
    xdmf_dir.joinpath('INS_LidDr_Cavity_hdf5_plt_cnt_0000').touch()
    xdmf_dir.joinpath('INS_LidDr_Cavity_hdf5_plt_cnt_0001').touch()
    xdmf_dir.joinpath('INS_LidDr_Cavity_hdf5_plt_cnt_0002').touch()
    xdmf_dir.joinpath('INS_LidDr_Cavity_forced_hdf5_plt_cnt_0000').touch()
    
    # a second (salt) set of plot files
    xdmf_dir.joinpath('INS_XxAddSalt_hdf5_grd_0000').touch()
    xdmf_dir.joinpath('INS_XxAddSalt_hdf5_plt_cnt_0010').touch()
    xdmf_dir.joinpath('INS_XxAddSalt_hdf5_plt_cnt_0011').touch()
    xdmf_dir.joinpath('INS_XxAddSalt_hdf5_plt_cnt_0012').touch()
    xdmf_dir.joinpath('INS_XxAddSalt_forced_hdf5_plt_cnt_0000').touch()
    
    # a set of checkpoint files
    xdmf_dir.joinpath('INS_Rayleigh_hdf5_geometry_0000').touch()
    xdmf_dir.joinpath('INS_Rayleigh_hdf5_chk_1000').touch()
    xdmf_dir.joinpath('INS_Rayleigh_hdf5_chk_0200').touch()
    xdmf_dir.joinpath('INS_Rayleigh_hdf5_chk_0030').touch()
    xdmf_dir.joinpath('INS_Rayleigh_hdf5_chk_0004').touch()
    xdmf_dir.joinpath('INS_Rayleigh_Salt_hdf5_chk_0099').touch()

    # a source and destination directory
    source_dir = xdmf_dir.joinpath('source')
    source_dir.mkdir()
    source_dir.joinpath('INS_LidDr_Cavity_hdf5_grd_0000').touch()
    source_dir.joinpath('INS_LidDr_Cavity_hdf5_plt_cnt_0000').touch()
    source_dir.joinpath('INS_LidDr_Cavity_hdf5_plt_cnt_0005').touch()
    source_dir.joinpath('INS_LidDr_Cavity_hdf5_plt_cnt_0010').touch()
    dest_dir = xdmf_dir.joinpath('dest')
    dest_dir.mkdir()

    return xdmf_dir