def test_integer_perfect_recon(): # Check that an integer input is correctly coerced into a floating point # array and reconstructed A = np.array([[1,2,3,4], [5,6,7,8]], dtype=np.int32) Yl, Yh = dtwavexfm2(A) B = dtwaveifm2(Yl, Yh) assert np.max(np.abs(A-B)) < 1e-5
def test_float32_input(): # Check that an float32 input is correctly output as float32 Yl, Yh = dtwavexfm2(mandrill.astype(np.float32)) assert np.issubsctype(Yl.dtype, np.float32) assert np.all(list(np.issubsctype(x.dtype, np.complex64) for x in Yh)) mandrill_recon = dtwaveifm2(Yl, Yh) assert np.issubsctype(mandrill_recon.dtype, np.float32)
def test_float32_input(): # Check that an float32 input is correctly output as float32 Yl, Yh = dtwavexfm2(lena.astype(np.float32)) assert np.issubsctype(Yl.dtype, np.float32) assert np.all(list(np.issubsctype(x.dtype, np.complex64) for x in Yh)) lena_recon = dtwaveifm2(Yl, Yh) assert np.issubsctype(lena_recon.dtype, np.float32)
def test_dtwavexfm2(): Yl, Yh, Yscale = dtwavexfm2(mandrill, 4, 'near_sym_a', 'qshift_a', include_scale=True) assert_almost_equal_to_summary(Yl, verif['mandrill_Yl'], tolerance=TOLERANCE) for idx, a in enumerate(Yh): assert_almost_equal_to_summary(a, verif['mandrill_Yh_{0}'.format(idx)], tolerance=TOLERANCE) for idx, a in enumerate(Yscale): assert_almost_equal_to_summary(a, verif['mandrill_Yscale_{0}'.format(idx)], tolerance=TOLERANCE)
def test_dtwavexfm2(): Yl, Yh, Yscale = dtwavexfm2(mandrill, 4, 'near_sym_a', 'qshift_a', include_scale=True) assert_almost_equal_to_summary(Yl, verif['mandrill_Yl'], tolerance=TOLERANCE) for idx, a in enumerate(Yh): assert_almost_equal_to_summary(a, verif['mandrill_Yh_{0}'.format(idx)], tolerance=TOLERANCE) for idx, a in enumerate(Yscale): assert_almost_equal_to_summary( a, verif['mandrill_Yscale_{0}'.format(idx)], tolerance=TOLERANCE)
def test_odd_rows_and_cols_w_scale(): Yl, Yh, Yscale = dtwavexfm2(mandrill[:509,:509], include_scale=True)
def test_odd_rows(): Yl, Yh = dtwavexfm2(mandrill[:509,:])
def test_3d(): with raises(ValueError): Yl, Yh = dtwavexfm2(np.dstack((mandrill, mandrill)))
def test_specific_wavelet(): Yl, Yh = dtwavexfm2(mandrill, biort=biort('antonini'), qshift=qshift('qshift_06'))
def test_1d(): Yl, Yh = dtwavexfm2(mandrill[0, :])
def test_0_levels_w_scale(): Yl, Yh, Yscale = dtwavexfm2(lena, nlevels=0, include_scale=True) assert np.all(np.abs(Yl - lena) < TOLERANCE) assert len(Yh) == 0 assert len(Yscale) == 0
def test_odd_rows_and_cols(): Yl, Yh = dtwavexfm2(mandrill[:, :509])
def test_reconstruct_custom_filter(): # Reconstruction up to tolerance Yl, Yh = dtwavexfm2(lena, 4, biort('legall'), qshift('qshift_06')) lena_recon = dtwaveifm2(Yl, Yh, biort('legall'), qshift('qshift_06')) assert np.all(np.abs(lena_recon - lena) < TOLERANCE)
def test_reconstruct_crop(): # Reconstruction up to tolerance Yl_crop, Yh_crop = dtwavexfm2(lena_crop) lena_recon = dtwaveifm2(Yl_crop, Yh_crop)[:lena_crop.shape[0], :lena_crop.shape[1]] assert np.all(np.abs(lena_recon - lena_crop) < TOLERANCE)
def test_reconstruct(): # Reconstruction up to tolerance Yl, Yh = dtwavexfm2(lena) lena_recon = dtwaveifm2(Yl, Yh) assert np.all(np.abs(lena_recon - lena) < TOLERANCE)
def test_reconstruct_custom_filter(): # Reconstruction up to tolerance Yl, Yh = dtwavexfm2(mandrill, 4, biort("legall"), qshift("qshift_06")) mandrill_recon = dtwaveifm2(Yl, Yh, biort("legall"), qshift("qshift_06")) assert np.all(np.abs(mandrill_recon - mandrill) < TOLERANCE)
def test_reconstruct_crop(): # Reconstruction up to tolerance Yl_crop, Yh_crop = dtwavexfm2(mandrill_crop) mandrill_recon = dtwaveifm2(Yl_crop, Yh_crop)[: mandrill_crop.shape[0], : mandrill_crop.shape[1]] assert np.all(np.abs(mandrill_recon - mandrill_crop) < TOLERANCE)
def test_reconstruct(): # Reconstruction up to tolerance Yl, Yh = dtwavexfm2(mandrill) mandrill_recon = dtwaveifm2(Yl, Yh) assert np.all(np.abs(mandrill_recon - mandrill) < TOLERANCE)
def test_0_levels(): Yl, Yh = dtwavexfm2(mandrill, nlevels=0) assert np.all(np.abs(Yl - mandrill) < TOLERANCE) assert len(Yh) == 0
def test_integer_input(): # Check that an integer input is correctly coerced into a floating point # array Yl, Yh = dtwavexfm2([[1,2,3,4], [1,2,3,4]]) assert np.any(Yl != 0)
def test_odd_rows(): Yl, Yh = dtwavexfm2(mandrill[:509, :])
def test_0_levels(): Yl, Yh = dtwavexfm2(lena, nlevels=0) assert np.all(np.abs(Yl - lena) < TOLERANCE) assert len(Yh) == 0
def test_simple(): Yl, Yh = dtwavexfm2(lena)
def test_specific_wavelet(): Yl, Yh = dtwavexfm2(lena, biort=biort('antonini'), qshift=qshift('qshift_06'))
def test_simple(): Yl, Yh = dtwavexfm2(mandrill)
def test_1d(): Yl, Yh = dtwavexfm2(lena[0,:])
def test_1d(): Yl, Yh = dtwavexfm2(mandrill[0,:])
def test_3d(): Yl, Yh = dtwavexfm2(np.dstack((lena, lena)))
def test_simple_w_scale(): Yl, Yh, Yscale = dtwavexfm2(mandrill, include_scale=True) assert len(Yscale) > 0 for x in Yscale: assert x is not None
def test_simple_w_scale(): Yl, Yh, Yscale = dtwavexfm2(lena, include_scale=True) assert len(Yscale) > 0 for x in Yscale: assert x is not None
def test_odd_rows_and_cols(): Yl, Yh = dtwavexfm2(mandrill[:,:509])
def test_reconstruct_crop(): # Reconstruction up to tolerance Yl_crop, Yh_crop = dtwavexfm2(mandrill_crop) mandrill_recon = dtwaveifm2( Yl_crop, Yh_crop)[:mandrill_crop.shape[0], :mandrill_crop.shape[1]] assert np.all(np.abs(mandrill_recon - mandrill_crop) < TOLERANCE)
def test_rot_symm_modified(): # This test only checks there is no error running these functions, not that they work Yl, Yh, Yscale = dtwavexfm2(mandrill, biort='near_sym_b_bp', qshift='qshift_b_bp', include_scale=True) Z = dtwaveifm2(Yl, Yh, biort='near_sym_b_bp', qshift='qshift_b_bp')
def test_0_levels_w_scale(): Yl, Yh, Yscale = dtwavexfm2(mandrill, nlevels=0, include_scale=True) assert np.all(np.abs(Yl - mandrill) < TOLERANCE) assert len(Yh) == 0 assert len(Yscale) == 0
def test_specific_wavelet(): Yl, Yh = dtwavexfm2(mandrill, biort=biort("antonini"), qshift=qshift("qshift_06"))
def test_odd_rows(): Yl, Yh = dtwavexfm2(lena[:509,:])
def test_odd_cols_w_scale(): Yl, Yh, Yscale = dtwavexfm2(mandrill[:509, :509], include_scale=True)
def test_odd_rows_and_cols(): Yl, Yh = dtwavexfm2(lena[:,:509])
def test_reconstruct_custom_filter(): # Reconstruction up to tolerance Yl, Yh = dtwavexfm2(mandrill, 4, biort('legall'), qshift('qshift_06')) mandrill_recon = dtwaveifm2(Yl, Yh, biort('legall'), qshift('qshift_06')) assert np.all(np.abs(mandrill_recon - mandrill) < TOLERANCE)
def test_odd_rows_and_cols_w_scale(): Yl, Yh, Yscale = dtwavexfm2(lena[:509,:509], include_scale=True)
def test_rot_symm_modified(): # This test only checks there is no error running these functions, not that they work Yl, Yh, Yscale = dtwavexfm2(lena, biort='near_sym_b_bp', qshift='qshift_b_bp', include_scale=True) Z = dtwaveifm2(Yl, Yh, biort='near_sym_b_bp', qshift='qshift_b_bp')