def test_mh(setup): setup.fit.method = NelderMead() setup.fit.stat = Cash() setup.fit.fit() results = setup.fit.est_errors() cov = results.extra_output mcmc = sim.MCMC() for par in setup.fit.model.pars: mcmc.set_prior(par, sim.flat) prior = mcmc.get_prior(par) assert prior.__name__ == 'flat' mcmc.set_sampler('MH') opt = mcmc.get_sampler_opt('defaultprior') mcmc.set_sampler_opt('defaultprior', opt) # mcmc.set_sampler_opt('verbose', True) log = logging.getLogger("sherpa") level = log.level log.setLevel(logging.ERROR) try: stats, accept, params = mcmc.get_draws(setup.fit, cov, niter=1e2) finally: log.setLevel(level)
def test_list_samplers(): """Ensure list_samplers returns a list.""" mcmc = sim.MCMC() samplers = mcmc.list_samplers() assert isinstance(samplers, list) assert len(samplers) > 0
def test_list_samplers_contents(): """Are the expected values included""" # Test that the expected values exist in this list, # but do not enforce these are the only values. # samplers = sim.MCMC().list_samplers() for expected in ['mh', 'metropolismh']: assert expected in samplers
def test_metropolisMH(self): self.fit.method = NelderMead() self.fit.stat = CStat() results = self.fit.fit() results = self.fit.est_errors() cov = results.extra_output mcmc = sim.MCMC() mcmc.set_sampler('MetropolisMH') # mcmc.set_sampler_opt('verbose', True) log = logging.getLogger("sherpa") level = log.level log.setLevel(logging.ERROR) stats, accept, params = mcmc.get_draws(self.fit, cov, niter=1e2) log.setLevel(level)