def test_ode(self, model): # Setting eg_tau = 1440 # Simulation example_data = ExampleData(tau=eg_tau) example_data.add(model) nondim_df = example_data.non_dim(model) assert isinstance(nondim_df, pd.DataFrame) nondim_cols = [Term.TS, *list(model.VAR_DICT.keys())] assert set(nondim_df.columns) == set(nondim_cols) clean_df = example_data.cleaned() assert isinstance(clean_df, pd.DataFrame) assert set(clean_df.columns) == set(Term.COLUMNS) dim_df = example_data.subset(model) assert isinstance(dim_df, pd.DataFrame) assert set(dim_df.columns) == set(Term.NLOC_COLUMNS) # Estimation population = model.EXAMPLE["population"] estimator = Estimator(example_data, model=model, population=population, country=model.NAME, province=Term.UNKNOWN, tau=eg_tau) estimator.run() estimated_df = estimator.summary(name=model.NAME) assert isinstance(estimated_df, pd.DataFrame) estimator.history(show_figure=False) estimator.accuracy(show_figure=False)
def test_one_phase(self, model): example_data = ExampleData() example_data.add(model) with pytest.raises(ValueError): example_data.subset() # Cleaned dataset clean_df = example_data.cleaned() assert set( clean_df.columns) == set(JHUData.CLEANED_COLS) - set([Term.ISO3]) # Subset subset_df = example_data.subset(model=model) assert subset_df.columns.tolist() == Term.SUB_COLUMNS example_data.subset(country=model.NAME) example_data.subset_complement(model=model) example_data.records(model=model) # Specialized specialized_df = example_data.specialized(model=model) assert specialized_df.columns.tolist() == [Term.DATE, *model.VARIABLES] # Non-dimensional nondim_df = example_data.non_dim(model=model) assert nondim_df.columns.tolist() == model.VARIABLES assert round(nondim_df.sum().sum()) == len(nondim_df)
def test_ode_two_phases(self, population_data): # Setting eg_tau = 1440 # Simulation example_data = ExampleData(tau=eg_tau) example_data.add(SIRF, step_n=30) example_data.add(SIRD, step_n=30) nondim_df = example_data.non_dim(SIRF) assert isinstance(nondim_df, pd.DataFrame) nondim_cols = [Term.TS, *list(SIRF.VAR_DICT.keys())] assert set(nondim_df.columns) == set(nondim_cols) clean_df = example_data.cleaned() assert isinstance(clean_df, pd.DataFrame) assert set(clean_df.columns) == set(Term.COLUMNS) dim_df = example_data.subset(SIRF) assert isinstance(dim_df, pd.DataFrame) assert set(dim_df.columns) == set(Term.NLOC_COLUMNS) # Scenario analysis population = SIRF.EXAMPLE["population"] population_data.update(population, country=SIRF.NAME) scenario = Scenario(example_data, population_data, country=SIRF.NAME) scenario.trend()