class TestLightcurveRebin(object): def setUp(self): #dt = 1.0 #n = 10 dt = 0.0001220703125 n = 1384132 mean_counts = 2.0 times = np.arange(dt/2, dt/2+n*dt, dt) counts= np.zeros_like(times)+mean_counts self.lc = Lightcurve(times, counts) def test_rebin_even(self): dt_new = 2.0 lc_binned = self.lc.rebin_lightcurve(dt_new) assert np.isclose(lc_binned.dt, dt_new) counts_test = np.zeros_like(lc_binned.time) + \ self.lc.counts[0]*dt_new/self.lc.dt assert np.allclose(lc_binned.counts, counts_test) def test_rebin_odd(self): dt_new = 1.5 lc_binned = self.lc.rebin_lightcurve(dt_new) assert np.isclose(lc_binned.dt, dt_new) counts_test = np.zeros_like(lc_binned.time) + \ self.lc.counts[0]*dt_new/self.lc.dt assert np.allclose(lc_binned.counts, counts_test) def rebin_several(self, dt): """ TODO: Not sure how to write tests for the rebin method! """ lc_binned = self.lc.rebin_lightcurve(dt) assert len(lc_binned.time) == len(lc_binned.counts) def test_rebin_equal_numbers(self): dt_all = [2, 3, np.pi, 5] for dt in dt_all: yield self.rebin_several, dt