def test_delete_phase(self, jhu_data, population_data, country): # Setting population = population_data.value(country) sr_df = jhu_data.to_sr(country=country, population=population) series = PhaseSeries("01Apr2020", "01Aug2020", population) series.trend(sr_df, show_figure=False) first_len = len(series) # Deletion of 0th phase is the same as disabling 0th phase series.delete("0th") series.enable("0th") assert len(series) == first_len assert "5th" in series.to_dict() # Delete phase (not the last registered phase) new_second = PhaseUnit( series.unit("2nd").start_date, series.unit("3rd").end_date, series.unit("2nd").population) series.delete("3rd") assert len(series) == first_len - 1 assert series.unit("2nd") == new_second # Delete the last phase old_last = series.unit("last") series.delete("last") series.add() assert series.unit("last").start_date == old_last.start_date
def test_trend(self, jhu_data, population_data, country): population = population_data.value(country) series = PhaseSeries("01Apr2020", "01Aug2020", population) # S-R trend analysis warnings.filterwarnings("ignore", category=DeprecationWarning) with pytest.raises(NotImplementedError): series.trend() with pytest.raises(NotImplementedError): series.trend_show()
def test_class_as_dict(self, jhu_data, population_data, country): # Setting snl = Scenario(jhu_data, population_data, country) # Create a phase series population = population_data.value(country) sr_df = jhu_data.to_sr(country=country, population=population) series = PhaseSeries("01Apr2020", "01Aug2020", population) series.trend(sr_df, show_figure=False) # Add scenario snl["New"] = series # Get scenario assert snl["New"] == series assert len(snl["New"]) == len(series)
def test_trend(self, jhu_data, population_data, country): warnings.simplefilter("ignore", category=UserWarning) warnings.simplefilter("ignore", category=DeprecationWarning) # Setting population = population_data.value(country) sr_df = jhu_data.to_sr(country=country, population=population) series = PhaseSeries("01Apr2020", "01Aug2020", population) # S-R trend analysis series.trend(sr_df) series.trend_show(sr_df=sr_df, area=None, filename=None) # Un-registered phase with pytest.raises(KeyError): series.unit("100th")
def test_add_phase_with_model(self, jhu_data, population_data, country): # Setting population = population_data.value(country) sr_df = jhu_data.to_sr(country=country, population=population) series = PhaseSeries("01Apr2020", "01Aug2020", population) series.trend(sr_df, show_figure=False) # Add future phase with model and tau series.add(end_date="01Sep2020", model=SIR, tau=360) series.add(end_date="01Oct2020") assert series.to_dict()["7th"][Term.ODE] == SIR.NAME assert series.to_dict()["8th"][Term.TAU] == 360 series.add(end_date="01Nov2020", rho=0.006) series.add(end_date="01Dec2020", sigma=0.011) assert series.to_dict()["10th"][Term.RT] == 0.55 assert series.to_dict()["10th"]["1/beta [day]"] == 41
def test_replace(self, jhu_data, population_data, country): # Setting population = population_data.value(country) sr_df = jhu_data.to_sr(country=country, population=population) series = PhaseSeries("01Apr2020", "01Aug2020", population) series.trend(sr_df, show_figure=False) # Replace one old phase with one new phase unit_old = series.unit("2nd") unit_new = PhaseUnit( unit_old.start_date, unit_old.end_date, population ) unit_new.set_ode(tau=360) series.replace("2nd", unit_new) assert series.unit("2nd") == unit_new # Replace one old phase with two new phases unit_old = series.unit("2nd") change_date = Term.date_change(unit_old.end_date, days=-7) unit_pre = PhaseUnit( unit_old.start_date, Term.yesterday(change_date), population) unit_pre.set_ode(tau=360) unit_fol = PhaseUnit(change_date, unit_old.end_date, population) unit_fol.set_ode(tau=360) series.replaces(phase="2nd", new_list=[unit_pre, unit_fol]) print(series.unit("2nd"), unit_pre) assert series.unit("2nd") == unit_pre assert series.unit("3rd") == unit_fol # TypeError of new_list with pytest.raises(TypeError): series.replaces(phase="2nd", new_list=[unit_pre, Term]) # ValueError with tense with pytest.raises(ValueError): future_unit = PhaseUnit("01Sep2020", "01Dec2020", population) series.replaces(phase="2nd", new_list=[future_unit]) # Add phase without deletion of any phases new1 = PhaseUnit("02Aug2020", "01Sep2020", population) new2 = PhaseUnit("02Sep2020", "01Oct2020", population) series.replaces(phase=None, new_list=[new1, new2]) assert series.unit("last") == new2
def test_trend(self, jhu_data, population_data, country): warnings.simplefilter("ignore", category=UserWarning) warnings.simplefilter("ignore", category=DeprecationWarning) # Setting population = population_data.value(country) sr_df = jhu_data.to_sr(country=country, population=population) series = PhaseSeries("01Apr2020", "01Aug2020", population) # Add a phase with specified end date series.add(end_date="22Apr2020") # S-R trend analysis series.trend(sr_df, set_phases=False, area=None) series.trend(sr_df, set_phases=False, area=None, show_figure=False) assert len(series) == 1 assert set(series.to_dict()) == set(["0th"]) # S-R trend analysis and set phases series.trend(sr_df) series.trend(sr_df, show_figure=False) # Un-registered phase with pytest.raises(KeyError): series.unit("100th")