def test_ff(self): """ Simulate from a filefunction object and test that the best fit flux is consistent with the simulated flux. """ name = 'ff' model = PowerLaw(index=2) model.set_flux(1e-6) simdir = path.expand('$SIMDIR/%s' % name) if not os.path.exists(simdir): os.makedirs(simdir) filename = abspath(join(simdir, 'file_function.txt')) model.save_profile(filename, 10, 1e6) ff = FileFunction(file=filename) center = SkyDir(0, 0) ps = PointSource(name='source', skydir=center, model=ff) point_sources = [ps] diffuse_sources = None roi = PointlikeTest.get_roi(name, center, point_sources, diffuse_sources, emin=1e2, emax=1e5, binsperdec=4) if PointlikeTest.VERBOSE: roi.print_summary() print roi roi.fit(use_gradient=PointlikeTest.USE_GRADIENT) if PointlikeTest.VERBOSE: roi.print_summary() print roi fit, error = ff.i_flux(1e2, 1e5, error=True) true = model.i_flux(1e2, 1e5, error=False) self.assertPull(fit, true, error, 'flux')