def test_split_merge_roundtrip( self, tmpdir, pspace_size, max_splits, min_items, n_splits): splitter = Splitter( str(tmpdir), Param(x=range(pspace_size)), max_splits, min_items) splitter.split() for filename in os.listdir(splitter.indir): infile = os.path.join(splitter.indir, filename) outfile = os.path.join(splitter.outdir, filename) save_dict_h5(outfile, load_dict_h5(infile)) result_file = os.path.join(str(tmpdir), 'result.h5') Splitter.merge(splitter.outdir, result_file) result = load_dict_h5(result_file) assert sorted(result['x']) == sorted(range(pspace_size))
def create_merge_job(self): code = ''' from psyrun.processing import Splitter Splitter.merge({outdir!r}, {filename!r}, append=False) '''.format(outdir=self.splitter.outdir, filename=self.result_file) return Job( 'merge', self._submit, code, [f for _, f in self.splitter.iter_in_out_files()], [self.result_file])