def test_rebin_small_dt(self): segment_size = 3 with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) with pytest.raises(ValueError): dps.rebin_time(dt_new=2.0)
def test_size_of_trace_maximum(self): with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=3) max_pos = dps.trace_maximum() nsegs = int(self.lc.tseg / dps.segment_size) assert len(max_pos) == nsegs
def test_rebin_small_df(self): segment_size = 3 with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) with pytest.raises(ValueError): dps.rebin_frequency(df_new=dps.df/2.0)
def test_trace_maximum_without_boundaries(self): with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=3) max_pos = dps.trace_maximum() assert np.max(dps.freq[max_pos]) <= 1 / self.lc.dt assert np.min(dps.freq[max_pos]) >= 1 / dps.segment_size
def test_trace_maximum_with_boundaries(self): dps = DynamicalPowerspectrum(self.lc, segment_size=3) minfreq = 21 maxfreq = 24 max_pos = dps.trace_maximum(min_freq=minfreq, max_freq=maxfreq) assert np.max(dps.freq[max_pos]) <= maxfreq assert np.min(dps.freq[max_pos]) >= minfreq
def test_rebin_time_average_method(self): segment_size = 3 dt_new = 4.0 rebin_time = np.array([ 2., 6., 10.]) rebin_dps = np.array([[0.59722222, 0.87301587, 0.21428571]]) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) dps.rebin_time(dt_new=dt_new, method='average') assert np.allclose(dps.time, rebin_time) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.dt, dt_new)
def test_rebin_time_default_method(self): segment_size = 3 dt_new = 4.0 rebin_time = np.array([ 2., 6., 10.]) rebin_dps = np.array([[0.7962963 , 1.16402116, 0.28571429]]) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) dps.rebin_time(dt_new=dt_new) assert np.allclose(dps.time, rebin_time) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.dt, dt_new)
def test_rebin_time_default_method(self): segment_size = 3 dt_new = 4.0 rebin_time = np.array([2., 6., 10.]) rebin_dps = np.array([[0.7962963, 1.16402116, 0.28571429]]) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) dps.rebin_time(dt_new=dt_new) assert np.allclose(dps.time, rebin_time) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.dt, dt_new)
def test_rebin_time_average_method(self): segment_size = 3 dt_new = 4.0 rebin_time = np.array([2., 6., 10.]) rebin_dps = np.array([[0.59722222, 0.87301587, 0.21428571]]) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) dps.rebin_time(dt_new=dt_new, method='average') assert np.allclose(dps.time, rebin_time) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.dt, dt_new)
def test_rebin_time_mean_method(self): segment_size = 3 dt_new = 4.0 rebin_time = np.array([1.5, 5.5, 9.5, 13.5]) rebin_dps = np.array([[0.59722222, 0.87301587, 0.21428571, 0.4921875]]) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) dps.rebin_time(dt_new=dt_new, method='mean') assert np.allclose(dps.time, rebin_time) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.dt, dt_new)
def test_trace_maximum_with_boundaries(self): with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=3) minfreq = 21 maxfreq = 24 max_pos = dps.trace_maximum(min_freq=minfreq, max_freq=maxfreq) assert np.max(dps.freq[max_pos]) <= maxfreq assert np.min(dps.freq[max_pos]) >= minfreq
def test_works_with_events(self): lc = copy.deepcopy(self.lc) lc.counts = np.floor(lc.counts) ev = EventList.from_lc(lc) dps = DynamicalPowerspectrum(lc, segment_size=10) with pytest.raises(ValueError): # Without dt, it fails _ = DynamicalPowerspectrum(ev, segment_size=10) dps_ev = DynamicalPowerspectrum(ev, segment_size=10, dt=self.lc.dt) assert np.allclose(dps.dyn_ps, dps_ev.dyn_ps)
def test_rebin_time_mean_method(self): segment_size = 3 dt_new = 4.0 rebin_time = np.array([ 2., 6., 10.]) rebin_dps = np.array([[0.59722222, 0.87301587, 0.21428571]]) with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) new_dps = dps.rebin_time(dt_new=dt_new, method='mean') assert np.allclose(new_dps.time, rebin_time) assert np.allclose(new_dps.dyn_ps, rebin_dps) assert np.isclose(new_dps.dt, dt_new)
def test_rebin_frequency_average_method(self): segment_size = 50 df_new = 10.0 rebin_freq = np.array( [5.01000198, 15.01000198, 25.01000198, 35.01000198, 45.01000198]) rebin_dps = np.array([[1.15296690e-08], [1.41532979e-07], [1.24993989e-02], [1.15516968e-07], [3.53906336e-08]]) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) dps.rebin_frequency(df_new=df_new, method="average") assert np.allclose(dps.freq, rebin_freq) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.df, df_new)
def test_rebin_frequency_default_method(self): segment_size = 50 df_new = 10.0 rebin_freq = np.array( [5.01000198, 15.01000198, 25.01000198, 35.01000198, 45.01000198]) rebin_dps = np.array([[5.76369293e-06], [7.07524761e-05], [6.24846189e+00], [5.77470465e-05], [1.76918128e-05]]) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) dps.rebin_frequency(df_new=df_new) assert np.allclose(dps.freq, rebin_freq) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.df, df_new)
def test_rebin_frequency_default_method(self): segment_size = 50 df_new = 10.0 rebin_freq = np.array( [5.01000198, 15.01000198, 25.01000198, 35.01000198, 45.01000198]) rebin_dps = np.array([[5.76369293e-06], [7.07524761e-05], [6.24846189e+00], [5.77470465e-05], [1.76918128e-05]]) with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) new_dps = dps.rebin_frequency(df_new=df_new) assert np.allclose(new_dps.freq, rebin_freq) assert np.allclose(new_dps.dyn_ps, rebin_dps) assert np.isclose(new_dps.df, df_new)
def test_rebin_frequency_default_method(self): segment_size = 50 df_new = 10.0 rebin_freq = np.array([5.01000198, 15.01000198, 25.01000198, 35.01000198, 45.01000198]) rebin_dps = np.array([[5.76369293e-06], [7.07524761e-05], [6.24846189e+00], [5.77470465e-05], [1.76918128e-05]]) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) dps.rebin_frequency(df_new=df_new) assert np.allclose(dps.freq, rebin_freq) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.df, df_new)
def test_rebin_frequency_average_method(self): segment_size = 50 df_new = 10.0 rebin_freq = np.array([5.01000198, 15.01000198, 25.01000198, 35.01000198, 45.01000198]) rebin_dps = np.array([[1.15296690e-08], [1.41532979e-07], [1.24993989e-02], [1.15516968e-07], [3.53906336e-08]]) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) dps.rebin_frequency(df_new=df_new, method="average") assert np.allclose(dps.freq, rebin_freq) assert np.allclose(dps.dyn_ps, rebin_dps) assert np.isclose(dps.df, df_new)
def test_rebin_frequency_average_method(self): segment_size = 50 df_new = 10.0 rebin_freq = np.array( [5.01000198, 15.01000198, 25.01000198, 35.01000198, 45.01000198]) rebin_dps = np.array([[1.15296690e-08], [1.41532979e-07], [1.24993989e-02], [1.15516968e-07], [3.53906336e-08]]) with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) new_dps = dps.rebin_frequency(df_new=df_new, method="average") assert np.allclose(new_dps.freq, rebin_freq) assert np.allclose(new_dps.dyn_ps, rebin_dps) assert np.isclose(new_dps.df, df_new)
def test_matrix(self): with warnings.catch_warnings(): warnings.simplefilter("ignore", category=UserWarning) dps = DynamicalPowerspectrum(self.lc, segment_size=3) nsegs = int(self.lc.tseg / dps.segment_size) nfreq = int((1 / self.lc.dt) / (2 * (dps.freq[1] - dps.freq[0])) - (1 / self.lc.tseg)) assert dps.dyn_ps.shape == (nfreq, nsegs)
def test_trace_maximum_without_boundaries(self): dps = DynamicalPowerspectrum(self.lc, segment_size=3) max_pos = dps.trace_maximum() assert np.max(dps.freq[max_pos]) <= 1 / self.lc.dt assert np.min(dps.freq[max_pos]) >= 1 / dps.segment_size
def test_size_of_trace_maximum(self): dps = DynamicalPowerspectrum(self.lc, segment_size=3) max_pos = dps.trace_maximum() nsegs = int(self.lc.tseg / dps.segment_size) assert len(max_pos) == nsegs
def test_rebin_small_df(self): segment_size = 3 dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) with pytest.raises(ValueError): dps.rebin_frequency(df_new=dps.df / 2.0)
def test_rebin_small_dt(self): segment_size = 3 dps = DynamicalPowerspectrum(self.lc_test, segment_size=segment_size) with pytest.raises(ValueError): dps.rebin_time(dt_new=2.0)
def test_matrix(self): dps = DynamicalPowerspectrum(self.lc, segment_size=3) nsegs = int(self.lc.tseg / dps.segment_size) nfreq = int((1 / self.lc.dt) / (2 * (dps.freq[1] - dps.freq[0])) - (1 / self.lc.tseg)) assert dps.dyn_ps.shape == (nfreq, nsegs)
def test_with_long_seg_size(self): with pytest.raises(ValueError): dps = DynamicalPowerspectrum(self.lc, segment_size=1000)
def test_rebin_small_df(self): segment_size = 3 dps = DynamicalPowerspectrum(self.lc, segment_size=segment_size) with pytest.raises(ValueError): dps.rebin_frequency(df_new=dps.df/2.0)