def test_strict_logger(self): log = logger.StrictLogger() # default values self.assertEqual(log.log_level, log.WARNING) self.assertEqual(log.log_data, False) # skip info and debug log.i("Nothing - Info") # Errors on warning and above with self.assertRaises(RuntimeError, msg="w triggered RuntimeError via logger"): log.w("w triggered RuntimeError via logger") with self.assertRaises(RuntimeError, msg="e triggered RuntimeError via logger"): log.e("e triggered RuntimeError via logger") # Uo prefix uo = DummyUO() with self.assertRaises(RuntimeError, msg="w triggered RuntimeError"): uo.write_to_strict_logger(log.WARNING, "DummyUnitOp: w triggered RuntimeError") # skip adding any data data_tree = dict() log.set_data_tree("MainTree", data_tree) log.d_data(data_tree, "bo1", 10) log.i_data(data_tree, "bo2", 20) self.assertTrue(len(data_tree.keys()) == 0) # ensure empty function and call function for 100 % coverage self.assert_empty_function(log._on_data_stored) log._on_data_stored(0, dict(), "", "")
def run_emg_fixed_relative_width(self, t, rt_mean_list, sigma_list, skew_list, cutoff, ignore_logger=True) -> None: for skew in skew_list: for sigma in sigma_list: for rt_mean in rt_mean_list: if rt_mean < 1 / skew: # peak max would be at t < 0 continue p = self.get_emg_pdf_with_cutoff(t, rt_mean, sigma, skew, cutoff) pd = pdf.ExpModGaussianFixedRelativeWidth( t, sigma_relative=sigma / rt_mean, tau_relative=1 / skew / rt_mean) if ignore_logger: pd.log.log_level = pd.log.ERROR + 10 else: pd.log = logger.StrictLogger() pd.cutoff_relative_to_max = cutoff pd.update_pdf(rt_mean=rt_mean) np.testing.assert_array_almost_equal(pd.get_p(), p, 3) pd.update_pdf(rt_mean=rt_mean / 2) p = self.get_emg_pdf_with_cutoff(t, rt_mean / 2, sigma / 2, skew * 2, cutoff) np.testing.assert_array_almost_equal(pd.get_p(), p, 3) pd.update_pdf(rt_mean=rt_mean / 2, skew=skew / 3) p = self.get_emg_pdf_with_cutoff(t, rt_mean / 2, sigma / 2, skew / 3, cutoff) np.testing.assert_array_almost_equal(pd.get_p(), p, 3)
def setUp(self) -> None: self.logger = logger.StrictLogger() self.logger.log_data = True self.logger.log_level = self.logger.DEBUG self.uo_id = "combo_uo" self.gui_title = "Parent UO" self.t = np.linspace(0, 100, 1000) self.child_uo_list = [ MockUpUnitOperation(self.t, "uo_1", "Unit Operation 1"), MockUpUnitOperation(self.t, "uo_2", "Unit Operation 2"), MockUpUnitOperation(self.t, "uo_3", "Unit Operation 3") ] self.child_uo_list[0].add_to_c = 0.1 self.child_uo_list[1].add_to_c = 0.01 self.child_uo_list[2].add_to_c = 0.001 self.uo_combo = special_uo.ComboUO(self.t, self.child_uo_list, self.uo_id, self.gui_title)
class DummyUO: _log_entity_id = "DummyUnitOp" default_logger = logger.DefaultLogger() data_storing_logger = logger.DataStoringLogger() strict_logger = logger.StrictLogger() def write_to_default_logger(self, lvl, msg): self.default_logger.log(lvl, msg) def write_to_data_storing_logger(self, lvl, msg): self.data_storing_logger.log(lvl, msg) def write_to_strict_logger(self, lvl, msg): self.strict_logger.log(lvl, msg) def data_write_to_data_storing_logger(self, tree, lvl, key, value): if lvl == self.data_storing_logger.INFO: self.data_storing_logger.i_data(tree, key, value) else: self.data_storing_logger.d_data(tree, key, value)
def run_tanks_in_series(self, t, rt_mean_list, n_tank_list, cutoff, ignore_logger=True) -> None: for n_tanks in n_tank_list: for rt_mean in rt_mean_list: p = self.get_tanks_in_series_pdf_with_cutoff( t, rt_mean, n_tanks, cutoff) pd = pdf.TanksInSeries(t, n_tanks) if ignore_logger: pd.log.log_level = pd.log.ERROR + 10 else: pd.log = logger.StrictLogger() pd.cutoff_relative_to_max = cutoff pd.update_pdf(rt_mean=rt_mean) np.testing.assert_array_almost_equal(pd.get_p(), p, 3) pd.update_pdf(rt_mean=rt_mean / 2) p = self.get_tanks_in_series_pdf_with_cutoff( t, rt_mean / 2, n_tanks, cutoff) np.testing.assert_array_almost_equal(pd.get_p(), p, 3)
def run_gauss_fixed_relative_with(self, t, rt_mean_list, sigma_list, cutoff, ignore_logger=True) -> None: for rt_mean in rt_mean_list: for sigma in sigma_list: p = self.get_gauss_pdf_with_cutoff(t, rt_mean, sigma, cutoff) pd = pdf.GaussianFixedRelativeWidth(t, relative_sigma=sigma / rt_mean, cutoff=cutoff) if ignore_logger: pd.log.log_level = pd.log.ERROR + 10 else: pd.log = logger.StrictLogger() pd.update_pdf(rt_mean=rt_mean) np.testing.assert_array_equal(pd.get_p(), p) pd.update_pdf(rt_mean=rt_mean / 2) p = self.get_gauss_pdf_with_cutoff(t, rt_mean / 2, sigma / 2, cutoff) np.testing.assert_array_almost_equal(pd.get_p(), p, 5)