| Conditions | 3 |
| Total Lines | 74 |
| Code Lines | 53 |
| Lines | 0 |
| Ratio | 0 % |
| Changes | 0 | ||
Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.
For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.
Commonly applied refactorings include:
If many parameters/temporary variables are present:
| 1 | import pytest |
||
| 36 | def test_set_models(base_config, gammapy_data_path): |
||
| 37 | """Test non-standard components of Target module.""" |
||
| 38 | |||
| 39 | from asgardpy.analysis import AsgardpyAnalysis |
||
| 40 | from asgardpy.data.target import set_models |
||
| 41 | |||
| 42 | ebl_file_name = "ebl_franceschini_2017.fits.gz" |
||
| 43 | ebl_file = f"{gammapy_data_path}ebl/{ebl_file_name}" |
||
| 44 | model_file_0 = f"{gammapy_data_path}fermi-3fhl-crab/Fermi-LAT-3FHL_models.yaml" |
||
| 45 | model_file_1 = f"{gammapy_data_path}fermi-3fhl-crab/Fermi-LAT-3FHL_datasets.yaml" |
||
| 46 | |||
| 47 | base_config.target.components[0].spectral.ebl_abs.filename = ebl_file |
||
| 48 | |||
| 49 | analysis_0 = AsgardpyAnalysis(base_config) |
||
| 50 | analysis_1 = AsgardpyAnalysis(base_config) |
||
| 51 | analysis_2 = AsgardpyAnalysis(base_config) |
||
| 52 | |||
| 53 | # Check when using create_source_skymodel function |
||
| 54 | analysis_0.config.target.from_3d = True |
||
| 55 | analysis_2.config.target.from_3d = True |
||
| 56 | |||
| 57 | analysis_0.run(["datasets-3d"]) |
||
| 58 | analysis_2.run(["datasets-3d"]) |
||
| 59 | # Check when using read_models_from_asgardpy_config |
||
| 60 | analysis_1.run(["datasets-1d"]) |
||
| 61 | |||
| 62 | analysis_1.config.target.source_name = "4FGL J0534.5+2201i" |
||
| 63 | analysis_0.config.target.source_name = "Crab Nebula" |
||
| 64 | |||
| 65 | data_0, model_0 = set_models( |
||
| 66 | analysis_0.config.target, |
||
| 67 | analysis_0.datasets, |
||
| 68 | datasets_name_list=None, |
||
| 69 | models=model_file_0, |
||
| 70 | ) |
||
| 71 | |||
| 72 | data_1, model_1 = set_models( |
||
| 73 | analysis_0.config.target, |
||
| 74 | analysis_0.datasets, |
||
| 75 | datasets_name_list=None, |
||
| 76 | ) |
||
| 77 | data_2, model_2 = set_models( |
||
| 78 | analysis_1.config.target, |
||
| 79 | analysis_1.datasets, |
||
| 80 | datasets_name_list=None, |
||
| 81 | ) |
||
| 82 | |||
| 83 | # Check when not providing target source name for creating the center of ROI in the exclusion mask |
||
| 84 | analysis_2.config.target.source_name = "" |
||
| 85 | data_3, model_3 = set_models( |
||
| 86 | analysis_2.config.target, |
||
| 87 | analysis_2.datasets, |
||
| 88 | datasets_name_list=None, |
||
| 89 | ) |
||
| 90 | |||
| 91 | with pytest.raises(KeyError): |
||
| 92 | _, _ = set_models( |
||
| 93 | analysis_0.config.target, |
||
| 94 | analysis_0.datasets, |
||
| 95 | datasets_name_list=None, |
||
| 96 | models=model_file_1, |
||
| 97 | ) |
||
| 98 | with pytest.raises(TypeError): |
||
| 99 | _, _ = set_models( |
||
| 100 | analysis_0.config.target, |
||
| 101 | analysis_0.datasets, |
||
| 102 | datasets_name_list=None, |
||
| 103 | models=1, |
||
| 104 | ) |
||
| 105 | assert model_0[0].datasets_names == ["Fermi-LAT_00", "Fermi-LAT_01"] |
||
| 106 | assert model_1[0].spectral_model.model2.filename.name == ebl_file_name |
||
| 107 | assert model_2[0].spectral_model.model2.filename.name == ebl_file_name |
||
| 108 | assert analysis_0.final_model[0].spectral_model.model2.filename.name == ebl_file_name |
||
| 109 | assert model_3[0].name == "" |
||
| 110 |