def test_perfect_reconstruction_level_0(n_dimensions): """ Test perfect reconstruction for a 0-level decomposition """ array = gen_input(n_dimensions) coeffs = dtcwt(data=array, level=0, first_stage="sym6", wavelet="qshift1") reconstructed = idtcwt(coeffs=coeffs, first_stage="sym6", wavelet="qshift1") assert np.allclose(array, reconstructed)
def test_axis_limits(self): """ Test that an exception is raised for an invalid 'axis' parameter """ with self.assertRaises(ValueError): coeffs = dtcwt( data=self.array, level=1, axis=self.array.ndim, first_stage="sym6", wavelet="qshift1", )
def test_perfect_reconstruction_level_1(self): """ Test perfect reconstruction for a single decomposition level """ for first_stage in available_first_stage_filters(): coeffs = dtcwt( data=self.array, level=1, first_stage=first_stage, wavelet="qshift1" ) reconstructed = idtcwt( coeffs=coeffs, first_stage=first_stage, wavelet="qshift1" ) self.assertTrue(np.allclose(self.array, reconstructed))
def test_perfect_reconstruction_level_0(self): """ Test perfect reconstruction for a 0-level decomposition """ coeffs = dtcwt(data=self.array, level=0, first_stage="sym6", wavelet="qshift1") reconstructed = idtcwt(coeffs=coeffs, first_stage="sym6", wavelet="qshift1") self.assertTrue(np.allclose(self.array, reconstructed))
def test_axis_limits(n_dimensions): """ Test that an exception is raised for an invalid 'axis' parameter """ array = gen_input(n_dimensions) with pytest.raises(ValueError): coeffs = dtcwt( data=array, level=1, axis=array.ndim, first_stage="sym6", wavelet="qshift1", )
def test_perfect_reconstruction_level_1(n_dimensions): """ Test perfect reconstruction for a single decomposition level """ array = gen_input(n_dimensions) for first_stage in available_first_stage_filters(): coeffs = dtcwt(data=array, level=1, first_stage=first_stage, wavelet="qshift1") reconstructed = idtcwt(coeffs=coeffs, first_stage=first_stage, wavelet="qshift1") assert np.allclose(array, reconstructed)
def test_axis(self): """ Test perfect reconstruction along all axes """ for axis in range(0, self.array.ndim): coeffs = dtcwt( data=self.array, level=2, axis=axis, first_stage="sym6", wavelet="qshift1", ) reconstructed = idtcwt( coeffs=coeffs, axis=axis, first_stage="sym6", wavelet="qshift1" ) self.assertTrue(np.allclose(self.array, reconstructed))
def test_axis(n_dimensions): """ Test perfect reconstruction along all axes """ array = gen_input(n_dimensions) for axis in range(0, array.ndim): coeffs = dtcwt( data=array, level=2, axis=axis, first_stage="sym6", wavelet="qshift1", ) reconstructed = idtcwt(coeffs=coeffs, axis=axis, first_stage="sym6", wavelet="qshift1") assert np.allclose(array, reconstructed)
def test_perfect_reconstruction_multilevel(self): """ Test perfect reconstruction for all levels, for all first_stage wavelets, for all DT wavelets """ for first_stage in available_first_stage_filters(): for wavelet in available_dt_filters(): for level in range( 1, dt_max_level( data=self.array, first_stage=first_stage, wavelet=wavelet ), ): coeffs = dtcwt( data=self.array, level=level, first_stage=first_stage, wavelet=wavelet, ) reconstructed = idtcwt( coeffs=coeffs, first_stage=first_stage, wavelet=wavelet ) self.assertTrue(np.allclose(self.array, reconstructed))
def test_perfect_reconstruction_multilevel(n_dimensions): """ Test perfect reconstruction for all levels, for all first_stage wavelets, for all DT wavelets """ array = gen_input(n_dimensions) for first_stage in available_first_stage_filters(): for wavelet in available_dt_filters(): for level in range( 1, dt_max_level(data=array, first_stage=first_stage, wavelet=wavelet), ): coeffs = dtcwt( data=array, level=level, first_stage=first_stage, wavelet=wavelet, ) reconstructed = idtcwt(coeffs=coeffs, first_stage=first_stage, wavelet=wavelet) assert np.allclose(array, reconstructed)