Commit 88e351a66bf55f556f27b907ebf98690d6b87d96

Authored by Jürgen Knödlseder
1 parent 1691ebb4

Speed up ctools unit tests

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,