def generate_data_rng_object_works(self): pe = PSDParEst(self.ps) sim_data1 = pe._generate_data(self.lpost, [2.0, 0.1, 100.0, 2.0], seed=1) sim_data2 = pe._generate_data(self.lpost, [2.0, 0.1, 100.0, 2.0], seed=1) assert np.allclose(sim_data1.power, sim_data2.power)
def generate_data_rng_object_works(self): pe = PSDParEst(self.ps) sim_data1 = pe._generate_data( self.lpost, [self.x_0_0, self.fwhm_0, self.amplitude_0, self.amplitude_1], seed=1) sim_data2 = pe._generate_data( self.lpost, [self.x_0_0, self.fwhm_0, self.amplitude_0, self.amplitude_1], seed=1) assert np.allclose(sim_data1.power, sim_data2.power)
def test_generate_data_produces_correct_distribution(self): model = models.Const1D() model.amplitude = 2.0 p = model(self.ps.freq) seed = 100 rng = np.random.RandomState(seed) noise = rng.exponential(size=len(p)) power = noise*p ps = Powerspectrum() ps.freq = self.ps.freq ps.power = power ps.m = 1 ps.df = self.ps.freq[1]-self.ps.freq[0] ps.norm = "leahy" lpost = PSDLogLikelihood(ps.freq, ps.power, model, m=1) pe = PSDParEst(ps) rng2 = np.random.RandomState(seed) sim_data = pe._generate_data(lpost, [2.0], rng2) assert np.allclose(ps.power, sim_data.power)