Пример #1
0
    def test_generate_target_dirname(self):
        lines = []
        lines.append("#pspec\n")
        lines.append("(permute):number=1-3\n")
        lines.append("(permute):letter=AAA,BBB\n")
        lines.append("(permute):singleton_val=300\n")
        lines.append("(permute):animal=dog,cat\n")

        lines.append("concise_print:animal,an\n")
        lines.append("concise_print:letter,l\n")
        lines.append("concise_print:singleton_val,s\n")
        lines.append("concise_print:resolution,res\n")
        lines.append("concise_print:AAA,aa\n")
        lines.append("concise_print:BBB,bb\n")
        lines.append("scores_permute:resolution=userDay,userMonth\n")
        lines.append(
            "scores_from:file=<permutation_output_dir>/(resolution).csv,column_name=auc,row_number=1\n"
        )
        lines.append("scores_to:./collected_results\n")
        lines.append("scores_y_axis:letter\n")
        lines.append("scores_x_axis:number,animal\n")
        stdout = mock_stdout.MockStdout()
        cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", lines, stdout,
                                         [], False, False)
        dirname = pooled_results_file.generate_target_dirname(cspec)
        #print "DIR IS : {0}".format(dirname)
        self.assertTrue(dirname == './collected_results/baz')
Пример #2
0
    def test_gen_cluster_job_perm_code_from_pieces(self):
        lines = []
        lines.append("#pspec\n")
        lines.append("trials:2\n")
        lines.append("(permute):number=1-3\n")
        lines.append("(permute):letter=AAA,BBB\n")
        lines.append("(permute):singleton_val=300\n")
        lines.append("(permute):animal=dog,cat\n")
        lines.append("concise_print:animal,an\n")
        lines.append("concise_print:letter,l\n")
        lines.append("concise_print:singleton_val,s\n")
        lines.append("concise_print:resolution,res\n")
        lines.append("concise_print:AAA,aa\n")
        lines.append("concise_print:BBB,bb\n")

        lines.append("scores_permute:resolution=userDay,userMonth\n")
        lines.append(
            "scores_from:file=<permutation_output_dir>/(resolution).csv,column_name=auc,row_number=1\n"
        )
        lines.append("scores_to:./collected_results\n")
        lines.append("scores_y_axis:letter\n")
        lines.append("scores_x_axis:number,animal\n")

        stdout = mock_stdout.MockStdout()
        cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", lines, stdout,
                                         [], False, False)
        y_permutation = {'letter': 'AAA'}
        x_permutation = {'number': '3', 'animal': 'dog'}
        filename_perm_dict = {'singleton_val': '300', 'resolution': 'userDay'}
        result = pooled_timings_file.gen_cluster_job_perm_code_from_pieces(
            y_permutation, x_permutation, filename_perm_dict, cspec, '2')
        print "RESULT : {0}".format(result)
        self.assertTrue(result == 'an_dog_l_aa_number_3_s_300_trial_2')
Пример #3
0
 def testCreateScript(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     self.assertFalse(cluster.scripts)
     cscript = cluster.create_script(pcode)
     self.assertTrue(cluster.scripts[pcode] == cscript)
Пример #4
0
 def testIsPermissionBlocked(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     cluster.create_script(pcode)
     cluster.launch(pcode)
     cluster.test_helper_set_invoke_error(pcode)
     self.assertTrue(cluster.get_invoke_error(pcode) != '')
Пример #5
0
 def testStopWaitingRun(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     cluster.create_script(pcode)
     cluster.launch(pcode)
     cluster.stop_run(pcode)
     self.assertTrue(not (cluster.running_state.has_key(pcode)))
Пример #6
0
 def testGetModTimeOutputFileRunIncomplete(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     cluster.create_script(pcode)
     cluster.launch(pcode)
     cluster.test_helper_set_ok_to_run(pcode)
     cluster.test_helper_set_run_finished_incomplete(pcode)
     self.assertTrue(cluster.get_output_file_mod_time(pcode) == 0)
Пример #7
0
 def testLaunch(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     cluster.create_script(pcode)
     cluster.launch(pcode)
     self.assertTrue(cluster.running_state[pcode] == 'waiting')
     cluster.test_helper_set_ok_to_run(pcode)
     self.assertTrue(cluster.running_state[pcode] == 'running')
Пример #8
0
 def testDeleteQstatLog(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     self.assertFalse(cluster.is_qstat_log_present())
     cluster.test_helper_set_qstat_info('qstatInfo')
     self.assertTrue(cluster.is_qstat_log_present())
     cluster.delete_qstat_log()
     self.assertFalse(cluster.is_qstat_log_present())
Пример #9
0
 def testDeleteInvokeLog(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     cluster.create_script(pcode)
     self.assertFalse(cluster.is_invoke_log_present(pcode))
     cluster.launch(pcode)
     self.assertTrue(cluster.is_invoke_log_present(pcode))
     cluster.delete_invoke_log(pcode)
     self.assertFalse(cluster.is_invoke_log_present(pcode))
Пример #10
0
 def testDeleteResults(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     cluster.create_script(pcode)
     cluster.launch(pcode)
     cluster.test_helper_set_ok_to_run(pcode)
     cluster.test_helper_set_run_finished_complete(pcode)
     self.assertTrue(cluster.is_output_files_present(pcode))
     cluster.delete_results(pcode)
     self.assertFalse(cluster.is_output_files_present(pcode))
Пример #11
0
 def testIsDoneMarkerPresentRunIncomplete(self):
     pcode = 'l_a_n_1_trial_1'
     stdout = mock_stdout.MockStdout()
     cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", self.lines,
                                      stdout, [], False, False)
     cluster_runs = cluster_runs_info.ClusterRunsInfo(cspec, stdout)
     cluster = mock_cluster.MockCluster(cluster_runs)
     self.assertFalse(cluster.is_done_marker_present(pcode))
     cluster.create_script(pcode)
     cluster.launch(pcode)
     self.assertFalse(cluster.is_done_marker_present(pcode))
     cluster.test_helper_set_ok_to_run(pcode)
     self.assertFalse(cluster.is_done_marker_present(pcode))
     cluster.test_helper_set_run_finished_incomplete(pcode)
     self.assertTrue(cluster.is_done_marker_present(pcode))
Пример #12
0
    def test_build_code_using_dictionary(self):
        lines = []
        lines.append("#pspec\n")

        lines.append("concise_print:letter,l\n")
        lines.append("concise_print:singleton_val,s\n")
        lines.append("concise_print:resolution,res\n")
        lines.append("concise_print:AAA,aa\n")
        lines.append("concise_print:BBB,bb\n")

        stdout = mock_stdout.MockStdout()
        cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", lines, stdout,
                                         [], False, False)
        perm_dict = {'singleton_val': '300', 'res': 'userDay'}
        code = pooled_results_file.build_code_using_dictionary(
            perm_dict, cspec)
        self.assertTrue(code == 'res_userDay_s_300')
Пример #13
0
 def test_validate_statement_present_in_lines(self):
     stdout = mock_stdout.MockStdout()
     lines = []
     lines.append("root_dir\n")
     self.assertFalse(
         cluster_spec.validate_statement_present(lines, "root_dir:",
                                                 "some_dir", stdout))
     lines.append("root_dir:\n")
     self.assertFalse(
         cluster_spec.validate_statement_present(lines, "root_dir:",
                                                 "some_dir", stdout))
     lines.append("root_dir:/foo/bar\n")
     self.assertTrue(
         cluster_spec.validate_statement_present(lines, "root_dir:",
                                                 "some_dir", stdout))
     # with spaces
     lines = []
     lines.append("root_dir: /foo/bar \n")
     self.assertTrue(
         cluster_spec.validate_statement_present(lines, "root_dir:",
                                                 "some_dir", stdout))
Пример #14
0
    def test_gather_file_permuters(self):
        lines = []
        lines.append("#pspec\n")
        lines.append("(permute):number=1-3\n")
        lines.append("(permute):letter=AAA,BBB\n")
        lines.append("(permute):singleton_val=300\n")
        lines.append("(permute):animal=dog,cat\n")

        lines.append("scores_permute:resolution=userDay,userMonth\n")
        lines.append(
            "scores_from:file=<permutation_output_dir>/(resolution).csv,column_name=auc,row_number=1\n"
        )
        lines.append("scores_to:./collected_results\n")
        lines.append("scores_y_axis:letter\n")
        lines.append("scores_x_axis:number,animal\n")

        stdout = mock_stdout.MockStdout()
        cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", lines, stdout,
                                         [], False, False)
        perm_dict = pooled_results_file.gather_file_permuters(cspec)
        keys = perm_dict.keys()
        self.assertTrue(len(keys) == 2)
        self.assertTrue(perm_dict.has_key('singleton_val'))
        self.assertTrue(perm_dict.has_key('resolution'))
Пример #15
0
    def test_load_cspec(self):
        lines = []
        lines.append("#pspec\n")
        lines.append("trials:2\n")
        lines.append("tag=_myTag\n")
        lines.append("(permute):number=range(1,4)\n")  # new form
        lines.append("(permute):letter=AAA,BBB\n")
        lines.append("(permute):singleton_val=300\n")
        lines.append("(permute):animal=dog,cat\n")
        lines.append("concise_print:animal,an\n")
        lines.append("encode:letter,l\n")  # alternate form
        lines.append("concise_print:singleton_val,s\n")
        lines.append("concise_print:resolution,res\n")
        lines.append("concise_print:AAA,aa\n")
        lines.append("concise_print:BBB,bb\n")

        #lines.append("scores_permute:resolution=userDay,userMonth\n")
        #lines.append("scores_from:file=<permutation_output_dir>/(resolution).csv,column_name=auc,row_number=1\n")
        #lines.append("scores_to:./collected_results\n")
        #lines.append("scores_y_axis:letter\n")
        #lines.append("scores_x_axis:number,animal\n")

        lines.append("<replace>:config[AAA]=aaa\n")
        lines.append("<replace>:config[BBB]=bbb\n")

        lines.append("<replace>:pretty[1]=one\n")
        lines.append("<replace>:pretty[2]=two\n")
        lines.append("<replace>:pretty[3]=three\n")

        lines.append("<replace>:root=/nfs/foo/bar\n")
        lines.append(
            "<replace>:x_dir=<root>/(letter)/<config[(letter)]>/(number)\n")
        lines.append("<replace>:algs_dir=/nfs/algs\n")
        lines.append("<replace>:tools_dir=<algs_dir>/tools\n")
        lines.append("<replace>:outfile_root=<pretty[(number)]>__TEST\n")

        lines.append("root_dir:/myRuns\n")

        lines.append("qsub_command:-q eecs,eecs1,eecs,share\n")
        lines.append("qsub_command:-M [email protected]\n")
        lines.append("qsub_command:-m beas\n")
        lines.append("first_job_number:100\n")

        lines.append(
            "command:echo (letter) (number) (singleton_val) > <permutation_output_dir>/(letter)_(number)_<pretty[(number)]>.txt\n"
        )
        stdout = mock_stdout.MockStdout()
        cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", lines, stdout,
                                         [], False, False)
        #print self.cspec.concise_print_map
        # concise_name
        self.assertTrue(cspec.get_concise_name('number') == 'number')
        self.assertTrue(cspec.get_concise_name('letter') == 'l')
        self.assertTrue(cspec.get_concise_name('singleton_val') == 's')
        self.assertTrue(cspec.get_concise_name('resolution') == 'res')

        #scores_info
        #self.assertTrue(cspec.scores_permuters['resolution'][0] == 'userDay')
        #self.assertTrue(cspec.scores_permuters['resolution'][1] == 'userMonth')

        #self.assertTrue(cspec.scores_from_filepath=='<permutation_output_dir>/(resolution).csv')
        #self.assertTrue(cspec.scores_from_colname=='auc')
        #self.assertTrue(cspec.scores_from_rownum=='1')
        #print 'self.cspec.scores_to : {0}'.format(self.cspec.scores_to)
        #self.assertTrue(cspec.scores_to=='./collected_results')

        #self.assertTrue(cspec.scores_x_axis==['number', 'animal'])
        #self.assertTrue(cspec.scores_y_axis==['letter'])

        #script_dir
        self.assertTrue(cspec.script_dir == '/myRuns/baz/scripts')

        #trials:
        self.assertTrue(cspec.trials == '2')

        #master_job_name:
        self.assertTrue(cspec.cspec_name == 'baz')

        #first_job_number:
        self.assertTrue(cspec.first_job_number == '100')

        #root_dir:
        self.assertTrue(cspec.root_dir == '/myRuns')

        # permuters:
        self.assertTrue(cspec.permuters['number'][0] == '1')
        self.assertTrue(cspec.permuters['number'][1] == '2')
        self.assertTrue(cspec.permuters['number'][2] == '3')
        self.assertTrue(cspec.permuters['letter'][0] == 'AAA')
        self.assertTrue(cspec.permuters['letter'][1] == 'BBB')

        # generate_results_dir_for_permutation:
        self.assertTrue(
            cspec.generate_results_dir_for_permutation('xyz_trial3') ==
            '/myRuns/baz/results/xyz_trial3')

        #concise_print_map:
        self.assertTrue(cspec.concise_print_map['letter'] == 'l')
        self.assertTrue(cspec.concise_print_map['singleton_val'] == 's')

        #key_val_map:
        kvm = cspec.key_val_map
        self.assertTrue(kvm['config[AAA]'] == 'aaa')
        self.assertTrue(kvm['config[BBB]'] == 'bbb')
        self.assertTrue(kvm['pretty[1]'] == 'one')
        self.assertTrue(kvm['pretty[2]'] == 'two')
        self.assertTrue(kvm['pretty[3]'] == 'three')
        self.assertTrue(kvm['cspec_name'] == 'baz')
        self.assertTrue(kvm['root'] == '/nfs/foo/bar')
        self.assertTrue(kvm['x_dir'] ==
                        '/nfs/foo/bar/(letter)/<config[(letter)]>/(number)')
        self.assertTrue(kvm['algs_dir'] == '/nfs/algs')
        self.assertTrue(kvm['tools_dir'] == '/nfs/algs/tools')
        self.assertTrue(kvm['outfile_root'] == '<pretty[(number)]>__TEST')

        #commands:
        commands_as_string = "{0}".format(cspec.commands)
        self.assertTrue(
            commands_as_string ==
            "['echo (letter) (number) (singleton_val) > <permutation_output_dir>/(letter)_(number)_<pretty[(number)]>.txt']"
        )

        #qsub_commands:
        qsub_commands_as_string = "{0}".format(cspec.qsub_commands)
        self.assertTrue(
            qsub_commands_as_string ==
            "['-q eecs,eecs1,eecs,share', '-M [email protected]', '-m beas']")
Пример #16
0
    def test_expand_permutations(self):
        stdout = mock_stdout.MockStdout()
        lines = []
        lines.append("#pspec\n")
        lines.append("(permute):number=range(1,4)\n")
        lines.append("(permute):letter=AAA,BBB\n")
        lines.append("(permute):singleton_val=300\n")
        lines.append("(permute):animal=dog,cat\n")
        cspec = cluster_spec.ClusterSpec("/foo/bar/baz.cspec", lines, stdout,
                                         [], False, False)

        permuters = cspec.permuters
        dict_list = permutations.expand_permutations(permuters)
        #print dict_list
        self.assertTrue(len(dict_list) == 12)
        dict1 = {
            'animal': 'cat',
            'number': '1',
            'letter': 'AAA',
            'singleton_val': '300'
        }
        dict2 = {
            'animal': 'cat',
            'number': '1',
            'letter': 'BBB',
            'singleton_val': '300'
        }
        dict3 = {
            'animal': 'cat',
            'number': '2',
            'letter': 'AAA',
            'singleton_val': '300'
        }
        dict4 = {
            'animal': 'cat',
            'number': '2',
            'letter': 'BBB',
            'singleton_val': '300'
        }
        dict5 = {
            'animal': 'cat',
            'number': '3',
            'letter': 'AAA',
            'singleton_val': '300'
        }
        dict6 = {
            'animal': 'cat',
            'number': '3',
            'letter': 'BBB',
            'singleton_val': '300'
        }

        dict7 = {
            'animal': 'dog',
            'number': '1',
            'letter': 'AAA',
            'singleton_val': '300'
        }
        dict8 = {
            'animal': 'dog',
            'number': '1',
            'letter': 'BBB',
            'singleton_val': '300'
        }
        dict9 = {
            'animal': 'dog',
            'number': '2',
            'letter': 'AAA',
            'singleton_val': '300'
        }
        dict10 = {
            'animal': 'dog',
            'number': '2',
            'letter': 'BBB',
            'singleton_val': '300'
        }
        dict11 = {
            'animal': 'dog',
            'number': '3',
            'letter': 'AAA',
            'singleton_val': '300'
        }
        dict12 = {
            'animal': 'dog',
            'number': '3',
            'letter': 'BBB',
            'singleton_val': '300'
        }
        self.assertTrue(dict1 in dict_list)
        self.assertTrue(dict2 in dict_list)
        self.assertTrue(dict3 in dict_list)
        self.assertTrue(dict4 in dict_list)
        self.assertTrue(dict5 in dict_list)
        self.assertTrue(dict6 in dict_list)
        self.assertTrue(dict7 in dict_list)
        self.assertTrue(dict8 in dict_list)
        self.assertTrue(dict9 in dict_list)
        self.assertTrue(dict10 in dict_list)
        self.assertTrue(dict11 in dict_list)
        self.assertTrue(dict12 in dict_list)