Commit 88e351a66bf55f556f27b907ebf98690d6b87d96
1 parent
1691ebb4
Speed up ctools unit tests
Showing
10 changed files
with
54 additions
and
22 deletions
cscripts/Makefile.am
| @@ -218,7 +218,8 @@ testdata = $(top_srcdir)/test/data/crab.xml \ | @@ -218,7 +218,8 @@ testdata = $(top_srcdir)/test/data/crab.xml \ | ||
| 218 | $(top_srcdir)/test/data/onoff_pha_on2.fits.gz \ | 218 | $(top_srcdir)/test/data/onoff_pha_on2.fits.gz \ |
| 219 | $(top_srcdir)/test/data/onoff_rmf.fits.gz \ | 219 | $(top_srcdir)/test/data/onoff_rmf.fits.gz \ |
| 220 | $(top_srcdir)/test/data/onoff_rmf1.fits.gz \ | 220 | $(top_srcdir)/test/data/onoff_rmf1.fits.gz \ |
| 221 | - $(top_srcdir)/test/data/onoff_rmf2.fits.gz | 221 | + $(top_srcdir)/test/data/onoff_rmf2.fits.gz \ |
| 222 | + $(top_srcdir)/test/data/model_crab_radialacceptance.xml | ||
| 222 | 223 | ||
| 223 | # Test data to be distributed in $(pyexecdir)/cscripts/tests/data/iactdata | 224 | # Test data to be distributed in $(pyexecdir)/cscripts/tests/data/iactdata |
| 224 | testiactdata = $(top_srcdir)/test/data/iactdata/hdu-index.fits.gz \ | 225 | testiactdata = $(top_srcdir)/test/data/iactdata/hdu-index.fits.gz \ |
test/data/crab.xml
| @@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
| 11 | <parameter name="DEC" scale="1.0" value="22.0145" min="-90" max="90" free="0"/> | 11 | <parameter name="DEC" scale="1.0" value="22.0145" min="-90" max="90" free="0"/> |
| 12 | </spatialModel> | 12 | </spatialModel> |
| 13 | </source> | 13 | </source> |
| 14 | - <source name="CTABackgroundModel" type="CTAIrfBackground" instrument="CTA"> | 14 | + <source name="Background" type="CTAIrfBackground" instrument="CTA"> |
| 15 | <spectrum type="PowerLaw"> | 15 | <spectrum type="PowerLaw"> |
| 16 | <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e+3" free="1"/> | 16 | <parameter name="Prefactor" scale="1.0" value="1.0" min="1e-3" max="1e+3" free="1"/> |
| 17 | <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> | 17 | <parameter name="Index" scale="1.0" value="0.0" min="-5.0" max="+5.0" free="1"/> |
test/data/model_crab_radialacceptance.xml
0 → 100644
| 1 | +<?xml version="1.0" standalone="no"?> | ||
| 2 | +<source_library title="source library"> | ||
| 3 | + <source name="Crab" type="PointSource"> | ||
| 4 | + <spectrum type="PowerLaw"> | ||
| 5 | + <parameter name="Prefactor" scale="1e-16" value="5.7" min="1e-07" max="1000.0" free="1"/> | ||
| 6 | + <parameter name="Index" scale="-1" value="2.48" min="0.0" max="+5.0" free="1"/> | ||
| 7 | + <parameter name="PivotEnergy" scale="1e6" value="0.3" min="0.01" max="1000.0" free="0"/> | ||
| 8 | + </spectrum> | ||
| 9 | + <spatialModel type="PointSource"> | ||
| 10 | + <parameter name="RA" scale="1.0" value="83.6331" min="-360" max="360" free="0"/> | ||
| 11 | + <parameter name="DEC" scale="1.0" value="22.0145" min="-90" max="90" free="0"/> | ||
| 12 | + </spatialModel> | ||
| 13 | + </source> | ||
| 14 | + <source name="Background" type="RadialAcceptance" instrument="CTA"> | ||
| 15 | + <spectrum type="PowerLaw"> | ||
| 16 | + <parameter name="Prefactor" scale="1e-6" value="61.8" min="0.0" max="1000.0" free="1"/> | ||
| 17 | + <parameter name="Index" scale="-1" value="1.85" min="0.0" max="+5.0" free="1"/> | ||
| 18 | + <parameter name="PivotEnergy" scale="1e6" value="1.0" min="0.01" max="1000.0" free="0"/> | ||
| 19 | + </spectrum> | ||
| 20 | + <radialModel type="Gaussian"> | ||
| 21 | + <parameter name="Sigma" scale="1.0" value="3.0" min="0.01" max="10.0" free="0"/> | ||
| 22 | + </radialModel> | ||
| 23 | + </source> | ||
| 24 | +</source_library> |
test/test_cspull.py
| @@ -43,6 +43,7 @@ class Test(test): | @@ -43,6 +43,7 @@ class Test(test): | ||
| 43 | test.__init__(self) | 43 | test.__init__(self) |
| 44 | 44 | ||
| 45 | # Set members | 45 | # Set members |
| 46 | + self._model = self._datadir + '/model_crab_radialacceptance.xml' | ||
| 46 | self._inobs = self._datadir + '/obs_stacked.xml' | 47 | self._inobs = self._datadir + '/obs_stacked.xml' |
| 47 | self._inobs_two = self._datadir + '/obs_stacked_two.xml' | 48 | self._inobs_two = self._datadir + '/obs_stacked_two.xml' |
| 48 | self._stacked_model = self._datadir + '/crab_bkgcube.xml' | 49 | self._stacked_model = self._datadir + '/crab_bkgcube.xml' |
test/test_cssens.py
| @@ -42,6 +42,9 @@ class Test(test): | @@ -42,6 +42,9 @@ class Test(test): | ||
| 42 | # Call base class constructor | 42 | # Call base class constructor |
| 43 | test.__init__(self) | 43 | test.__init__(self) |
| 44 | 44 | ||
| 45 | + # Set test data | ||
| 46 | + self._model = self._datadir + '/model_crab_radialacceptance.xml' | ||
| 47 | + | ||
| 45 | # Return | 48 | # Return |
| 46 | return | 49 | return |
| 47 | 50 |
test/test_csworkflow.py
| @@ -149,10 +149,10 @@ class Test(test): | @@ -149,10 +149,10 @@ class Test(test): | ||
| 149 | self.test_value(models['Crab'][3].value(), | 149 | self.test_value(models['Crab'][3].value(), |
| 150 | -2.45753747320273, 1.0e-4 * 2.45753747320273, | 150 | -2.45753747320273, 1.0e-4 * 2.45753747320273, |
| 151 | 'Check Crab index') | 151 | 'Check Crab index') |
| 152 | - self.test_value(models['CTABackgroundModel'][0].value(), | 152 | + self.test_value(models['Background'][0].value(), |
| 153 | 1.0444753409474, 1.0e-4 * 1.0444753409474, | 153 | 1.0444753409474, 1.0e-4 * 1.0444753409474, |
| 154 | 'Check background model prefactor') | 154 | 'Check background model prefactor') |
| 155 | - self.test_value(models['CTABackgroundModel'][1].value(), | 155 | + self.test_value(models['Background'][1].value(), |
| 156 | 0.0126628793551562, 1.0e-4 * 0.0126628793551562, | 156 | 0.0126628793551562, 1.0e-4 * 0.0126628793551562, |
| 157 | 'Check background model index') | 157 | 'Check background model index') |
| 158 | 158 |
test/test_cterror.py
| @@ -275,16 +275,16 @@ class Test(test): | @@ -275,16 +275,16 @@ class Test(test): | ||
| 275 | self.test_value(models['Crab']['Index'].error(), | 275 | self.test_value(models['Crab']['Index'].error(), |
| 276 | 0.0366617454398694, 1.0e-3 * 0.0366617454398694, | 276 | 0.0366617454398694, 1.0e-3 * 0.0366617454398694, |
| 277 | 'Check Crab Index error') | 277 | 'Check Crab Index error') |
| 278 | - self.test_value(models['CTABackgroundModel']['Prefactor'].value(), | 278 | + self.test_value(models['Background']['Prefactor'].value(), |
| 279 | 1.01525433446138, 1.0e-4 * 1.01525433446138, | 279 | 1.01525433446138, 1.0e-4 * 1.01525433446138, |
| 280 | 'Check fitted background Prefactor') | 280 | 'Check fitted background Prefactor') |
| 281 | - self.test_value(models['CTABackgroundModel']['Prefactor'].error(), | 281 | + self.test_value(models['Background']['Prefactor'].error(), |
| 282 | 0.0334412516391298, 1.0e-4 * 0.0334412516391298, | 282 | 0.0334412516391298, 1.0e-4 * 0.0334412516391298, |
| 283 | 'Check background Prefactor error') | 283 | 'Check background Prefactor error') |
| 284 | - self.test_value(models['CTABackgroundModel']['Index'].value(), | 284 | + self.test_value(models['Background']['Index'].value(), |
| 285 | -0.005132848897274, 1.0e-3 * 0.005132848897274, | 285 | -0.005132848897274, 1.0e-3 * 0.005132848897274, |
| 286 | 'Check fitted background Index') | 286 | 'Check fitted background Index') |
| 287 | - self.test_value(models['CTABackgroundModel']['Index'].error(), | 287 | + self.test_value(models['Background']['Index'].error(), |
| 288 | 0.0200624490548333, 1.0e-4 * 0.0200624490548333, | 288 | 0.0200624490548333, 1.0e-4 * 0.0200624490548333, |
| 289 | 'Check background Index error') | 289 | 'Check background Index error') |
| 290 | 290 |
test/test_ctlike.py
| @@ -265,16 +265,16 @@ class Test(test): | @@ -265,16 +265,16 @@ class Test(test): | ||
| 265 | self.test_value(models['Crab']['Index'].error(), | 265 | self.test_value(models['Crab']['Index'].error(), |
| 266 | 0.0386777873333435, 1.0e-4 * 0.0386777873333435, | 266 | 0.0386777873333435, 1.0e-4 * 0.0386777873333435, |
| 267 | 'Check Crab Index error') | 267 | 'Check Crab Index error') |
| 268 | - self.test_value(models['CTABackgroundModel']['Prefactor'].value(), | 268 | + self.test_value(models['Background']['Prefactor'].value(), |
| 269 | 1.01525433446138, 1.0e-4 * 1.01525433446138, | 269 | 1.01525433446138, 1.0e-4 * 1.01525433446138, |
| 270 | 'Check fitted background Prefactor') | 270 | 'Check fitted background Prefactor') |
| 271 | - self.test_value(models['CTABackgroundModel']['Prefactor'].error(), | 271 | + self.test_value(models['Background']['Prefactor'].error(), |
| 272 | 0.0334412516391298, 1.0e-4 * 0.0334412516391298, | 272 | 0.0334412516391298, 1.0e-4 * 0.0334412516391298, |
| 273 | 'Check background Prefactor error') | 273 | 'Check background Prefactor error') |
| 274 | - self.test_value(models['CTABackgroundModel']['Index'].value(), | 274 | + self.test_value(models['Background']['Index'].value(), |
| 275 | -0.005132848897274, 1.0e-3 * 0.005132848897274, | 275 | -0.005132848897274, 1.0e-3 * 0.005132848897274, |
| 276 | 'Check fitted background Index') | 276 | 'Check fitted background Index') |
| 277 | - self.test_value(models['CTABackgroundModel']['Index'].error(), | 277 | + self.test_value(models['Background']['Index'].error(), |
| 278 | 0.0200624490548333, 1.0e-4 * 0.0200624490548333, | 278 | 0.0200624490548333, 1.0e-4 * 0.0200624490548333, |
| 279 | 'Check background Index error') | 279 | 'Check background Index error') |
| 280 | 280 |
test/test_ctprob.py
| @@ -220,7 +220,7 @@ class Test(test): | @@ -220,7 +220,7 @@ class Test(test): | ||
| 220 | self._check_events(events, nevents=nevents) | 220 | self._check_events(events, nevents=nevents) |
| 221 | 221 | ||
| 222 | # Check that probability columns exist | 222 | # Check that probability columns exist |
| 223 | - colname1 = 'PROB_CTABackgroundModel' | 223 | + colname1 = 'PROB_Background' |
| 224 | colname2 = 'PROB_Crab' | 224 | colname2 = 'PROB_Crab' |
| 225 | self._check_column(filename, colname1) | 225 | self._check_column(filename, colname1) |
| 226 | self._check_column(filename, colname2) | 226 | self._check_column(filename, colname2) |
test/test_obsutils.py
| @@ -39,6 +39,9 @@ class Test(test): | @@ -39,6 +39,9 @@ class Test(test): | ||
| 39 | # Call base class constructor | 39 | # Call base class constructor |
| 40 | test.__init__(self) | 40 | test.__init__(self) |
| 41 | 41 | ||
| 42 | + # Set test data | ||
| 43 | + self._model = self._datadir + '/model_crab_radialacceptance.xml' | ||
| 44 | + | ||
| 42 | # Return | 45 | # Return |
| 43 | return | 46 | return |
| 44 | 47 | ||
| @@ -113,14 +116,14 @@ class Test(test): | @@ -113,14 +116,14 @@ class Test(test): | ||
| 113 | # Check simulation results | 116 | # Check simulation results |
| 114 | self.test_value(res.size(), 1, 'Check number of observations') | 117 | self.test_value(res.size(), 1, 'Check number of observations') |
| 115 | self.test_value(res.models().size(), 2, 'Check number of models') | 118 | self.test_value(res.models().size(), 2, 'Check number of models') |
| 116 | - self.test_value(res.nobserved(), 6, 'Check number of observed events') | 119 | + self.test_value(res.nobserved(), 4, 'Check number of observed events') |
| 117 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') | 120 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') |
| 118 | self.test_value(res[0].eventtype(), 'EventList', 'Check event type') | 121 | self.test_value(res[0].eventtype(), 'EventList', 'Check event type') |
| 119 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, | 122 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, |
| 120 | 'Check minimum energy') | 123 | 'Check minimum energy') |
| 121 | self.test_value(res[0].events().ebounds().emax().TeV(), 10.0, | 124 | self.test_value(res[0].events().ebounds().emax().TeV(), 10.0, |
| 122 | 'Check minimum energy') | 125 | 'Check minimum energy') |
| 123 | - self.test_value(res[0].events().number(), 6, | 126 | + self.test_value(res[0].events().number(), 4, |
| 124 | 'Check number of events in list') | 127 | 'Check number of events in list') |
| 125 | 128 | ||
| 126 | # Check energy dispersion flag | 129 | # Check energy dispersion flag |
| @@ -144,7 +147,7 @@ class Test(test): | @@ -144,7 +147,7 @@ class Test(test): | ||
| 144 | # Check simulation results | 147 | # Check simulation results |
| 145 | self.test_value(res.size(), 1, 'Check number of observations') | 148 | self.test_value(res.size(), 1, 'Check number of observations') |
| 146 | self.test_value(res.models().size(), 2, 'Check number of models') | 149 | self.test_value(res.models().size(), 2, 'Check number of models') |
| 147 | - self.test_value(res.nobserved(), 6, 'Check number of observed events') | 150 | + self.test_value(res.nobserved(), 4, 'Check number of observed events') |
| 148 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') | 151 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') |
| 149 | self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') | 152 | self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') |
| 150 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, | 153 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, |
| @@ -153,7 +156,7 @@ class Test(test): | @@ -153,7 +156,7 @@ class Test(test): | ||
| 153 | 'Check minimum energy') | 156 | 'Check minimum energy') |
| 154 | self.test_value(res[0].events().ebounds().size(), 5, | 157 | self.test_value(res[0].events().ebounds().size(), 5, |
| 155 | 'Check number of energy bins') | 158 | 'Check number of energy bins') |
| 156 | - self.test_value(res[0].events().number(), 6, | 159 | + self.test_value(res[0].events().number(), 4, |
| 157 | 'Check number of events in cube') | 160 | 'Check number of events in cube') |
| 158 | 161 | ||
| 159 | # Check energy dispersion flag | 162 | # Check energy dispersion flag |
| @@ -177,7 +180,7 @@ class Test(test): | @@ -177,7 +180,7 @@ class Test(test): | ||
| 177 | # Check simulation results | 180 | # Check simulation results |
| 178 | self.test_value(res.size(), 1, 'Check number of observations') | 181 | self.test_value(res.size(), 1, 'Check number of observations') |
| 179 | self.test_value(res.models().size(), 2, 'Check number of models') | 182 | self.test_value(res.models().size(), 2, 'Check number of models') |
| 180 | - self.test_value(res.nobserved(), 19, 'Check number of observed events') | 183 | + self.test_value(res.nobserved(), 15, 'Check number of observed events') |
| 181 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') | 184 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') |
| 182 | self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') | 185 | self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') |
| 183 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, | 186 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, |
| @@ -186,7 +189,7 @@ class Test(test): | @@ -186,7 +189,7 @@ class Test(test): | ||
| 186 | 'Check minimum energy') | 189 | 'Check minimum energy') |
| 187 | self.test_value(res[0].events().ebounds().size(), 5, | 190 | self.test_value(res[0].events().ebounds().size(), 5, |
| 188 | 'Check number of energy bins') | 191 | 'Check number of energy bins') |
| 189 | - self.test_value(res[0].events().number(), 19, | 192 | + self.test_value(res[0].events().number(), 15, |
| 190 | 'Check number of events in cube') | 193 | 'Check number of events in cube') |
| 191 | 194 | ||
| 192 | # Check energy dispersion flag | 195 | # Check energy dispersion flag |
| @@ -211,7 +214,7 @@ class Test(test): | @@ -211,7 +214,7 @@ class Test(test): | ||
| 211 | # Check simulation results | 214 | # Check simulation results |
| 212 | self.test_value(res.size(), 1, 'Check number of observations') | 215 | self.test_value(res.size(), 1, 'Check number of observations') |
| 213 | self.test_value(res.models().size(), 2, 'Check number of models') | 216 | self.test_value(res.models().size(), 2, 'Check number of models') |
| 214 | - self.test_value(res.nobserved(), 28, 'Check number of observed events') | 217 | + self.test_value(res.nobserved(), 24, 'Check number of observed events') |
| 215 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') | 218 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') |
| 216 | self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') | 219 | self.test_value(res[0].eventtype(), 'CountsCube', 'Check event type') |
| 217 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, | 220 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, |
| @@ -220,7 +223,7 @@ class Test(test): | @@ -220,7 +223,7 @@ class Test(test): | ||
| 220 | 'Check minimum energy') | 223 | 'Check minimum energy') |
| 221 | self.test_value(res[0].events().ebounds().size(), 5, | 224 | self.test_value(res[0].events().ebounds().size(), 5, |
| 222 | 'Check number of energy bins') | 225 | 'Check number of energy bins') |
| 223 | - self.test_value(res[0].events().number(), 28, | 226 | + self.test_value(res[0].events().number(), 24, |
| 224 | 'Check number of events in cube') | 227 | 'Check number of events in cube') |
| 225 | 228 | ||
| 226 | # Check energy dispersion flag | 229 | # Check energy dispersion flag |
| @@ -306,7 +309,7 @@ class Test(test): | @@ -306,7 +309,7 @@ class Test(test): | ||
| 306 | # Check simulation results | 309 | # Check simulation results |
| 307 | self.test_value(res.size(), 1, 'Check number of observations') | 310 | self.test_value(res.size(), 1, 'Check number of observations') |
| 308 | self.test_value(res.models().size(), 2, 'Check number of models') | 311 | self.test_value(res.models().size(), 2, 'Check number of models') |
| 309 | - self.test_value(res.nobserved(), 6, 'Check number of observed events') | 312 | + self.test_value(res.nobserved(), 4, 'Check number of observed events') |
| 310 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') | 313 | self.test_value(res.npred(), 0.0, 'Check number of predicted events') |
| 311 | self.test_value(res[0].eventtype(), 'EventList', 'Check event type') | 314 | self.test_value(res[0].eventtype(), 'EventList', 'Check event type') |
| 312 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, | 315 | self.test_value(res[0].events().ebounds().emin().TeV(), 1.0, |