def test_calculate_job_results_grouped_core_seconds(self): db_obj = FakeDBObj(self) rt = ResultTrace() pbs_list = { "account": ["account1", "account2"], "cores_per_node": [24, 24, 24], "numnodes": [1, 1, 1], "wallclock_requested": [360, 500, 600], "class": ["queue1", "queue2", "queue3"], "created": [1000, 2000, 3000], "start": [1100, 2200, 3300], "completion": [1500, 2700, 4000], "jobname": ["sim_job", "sim_job", "sim_job"] } rt._lists_submit = rt._transform_pbs_to_slurm(pbs_list) rt.calculate_job_results_grouped_core_seconds([0, 24 * 450, 24 * 550], True, db_obj, 1) self.assertEqual(db_obj._id_count, 12 * 3) fields = [ "jobs_runtime_cdf", "jobs_runtime_stats", "jobs_waittime_cdf", "jobs_waittime_stats", "jobs_turnaround_cdf", "jobs_turnaround_stats", "jobs_requested_wc_cdf", "jobs_requested_wc_stats", "jobs_cpus_alloc_cdf", "jobs_cpus_alloc_stats", "jobs_slowdown_cdf", "jobs_slowdown_stats" ] new_fields = [] for edge in [0, 24 * 450, 24 * 550]: for field in fields: new_fields.append("g" + str(edge) + "_" + field) self.assertEqual(db_obj._set_fields, new_fields) self.assertEqual(db_obj._hist_count, 6 * 3) self.assertEqual(db_obj._stats_count, 6 * 3)
def test_load_job_results_grouped_core_seconds(self): db_obj = self._db hist = Histogram() stat = NumericStats() self.addCleanup(self._del_table, "histograms") self.addCleanup(self._del_table, "numericStats") hist.create_table(db_obj) stat.create_table(db_obj) rt = ResultTrace() pbs_list = { "account": ["account1", "account2"], "cores_per_node": [24, 24, 24], "numnodes": [1, 1, 1], "wallclock_requested": [120, 368, 400], "class": ["queue1", "queue2", "queue3"], "created": [1000, 2000, 3000], "start": [1100, 2200, 3300], "completion": [1500, 2700, 4000], "jobname": ["name1", "name2", "name3"] } rt._lists_submit = rt._transform_pbs_to_slurm(pbs_list) rt.calculate_job_results_grouped_core_seconds([0, 24 * 450, 24 * 550], True, db_obj, 1) db_obj = self._db new_rt = ResultTrace() new_rt.load_job_results_grouped_core_seconds([0, 24 * 450, 24 * 550], db_obj, 1) fields = [ "jobs_runtime_cdf", "jobs_runtime_stats", "jobs_waittime_cdf", "jobs_waittime_stats", "jobs_turnaround_cdf", "jobs_turnaround_stats", "jobs_requested_wc_cdf", "jobs_requested_wc_stats", "jobs_cpus_alloc_cdf", "jobs_cpus_alloc_stats", "jobs_slowdown_cdf", "jobs_slowdown_stats" ] new_fields = [] for edge in [0, 24 * 450, 24 * 550]: for field in fields: new_fields.append("g" + str(edge) + "_" + field) for field in new_fields: self.assertNotEqual(new_rt.jobs_results[field], None)