def test_validation_checks(): config = AnalysisConfig() analysis = Analysis(config) analysis.settings["observations"]["datastore"] = "other" with pytest.raises(FileNotFoundError): analysis.get_observations() config = AnalysisConfig.from_template("1d") analysis = Analysis(config) assert analysis.get_flux_points() is False assert analysis.run_fit() is False assert analysis.set_model() is False assert analysis.get_datasets() is False analysis.get_observations() analysis.settings["datasets"]["dataset-type"] = "not assigned" assert analysis.get_datasets() is False analysis.settings["datasets"]["dataset-type"] = "SpectrumDatasetOnOff" analysis.get_observations() analysis.get_datasets() model_str = Path(MODEL_FILE).read_text() analysis.set_model(model=model_str) assert isinstance(analysis.model, SkyModels) is True assert analysis.set_model() is False analysis.run_fit() del analysis.settings["flux-points"] assert analysis.get_flux_points() is False
def test_analysis_3d_no_geom_irf(): config = AnalysisConfig.from_template("3d") analysis = Analysis(config) analysis.get_observations() analysis.get_datasets() assert len(analysis.datasets) == 1
def test_analysis_3d_joint_datasets(): config = AnalysisConfig.from_template("3d") config.settings["datasets"]["stack-datasets"] = False analysis = Analysis(config) analysis.get_observations() analysis.get_datasets() assert len(analysis.datasets) == 4
def test_analysis_1d_stacked(): config = AnalysisConfig.from_template("1d") analysis = Analysis(config) analysis.settings["datasets"]["stack-datasets"] = True analysis.get_observations() analysis.get_datasets() analysis.set_model(filename=MODEL_FILE) analysis.run_fit() assert len(analysis.datasets) == 1 assert_allclose(analysis.datasets["stacked"].counts.data.sum(), 404) pars = analysis.fit_result.parameters assert_allclose(pars["index"].value, 2.689559, rtol=1e-3) assert_allclose(pars["amplitude"].value, 2.81629e-11, rtol=1e-3)
def test_analysis_1d(config_analysis_data): config = AnalysisConfig.from_template("1d") analysis = Analysis(config) analysis.config.update_settings(config_analysis_data) analysis.get_observations() analysis.get_datasets() analysis.set_model(filename=MODEL_FILE) analysis.run_fit() analysis.get_flux_points() assert len(analysis.datasets) == 2 assert len(analysis.flux_points.data.table) == 4 dnde = analysis.flux_points.data.table["dnde"].quantity assert dnde.unit == "cm-2 s-1 TeV-1" assert_allclose(dnde[0].value, 8.03604e-12, rtol=1e-2) assert_allclose(dnde[-1].value, 4.780021e-21, rtol=1e-2)
def test_analysis_3d(): config = AnalysisConfig.from_template("3d") analysis = Analysis(config) analysis.get_observations() analysis.get_datasets() analysis.set_model(filename=MODEL_FILE) analysis.datasets["stacked"].background_model.tilt.frozen = False analysis.run_fit() analysis.get_flux_points() assert len(analysis.datasets) == 1 assert len(analysis.fit_result.parameters) == 8 res = analysis.fit_result.parameters assert res[3].unit == "cm-2 s-1 TeV-1" assert len(analysis.flux_points.data.table) == 2 dnde = analysis.flux_points.data.table["dnde"].quantity assert_allclose(dnde[0].value, 1.182768e-11, rtol=1e-1) assert_allclose(dnde[-1].value, 4.051367e-13, rtol=1e-1) assert_allclose(res["index"].value, 2.76607, rtol=1e-1) assert_allclose(res["tilt"].value, -0.143204, rtol=1e-1)