1616from pylops .basicoperators import Transpose
1717from pylops .utils import dottest
1818
19- par1 = {"ny" : 21 , "nx" : 11 , "nt" : 20 , "imag" : 0 , "dtype" : "float64" } # real
20- par2 = {"ny" : 21 , "nx" : 11 , "nt" : 20 , "imag" : 1j , "dtype" : "complex128" } # complex
19+ par1 = {"ny" : 21 , "nx" : 11 , "nt" : 20 , "imag" : 0 , "dtype" : "float64" } # real (fp64)
20+ par1s = {"ny" : 21 , "nx" : 11 , "nt" : 20 , "imag" : 0 , "dtype" : "float32" } # real (fp32)
21+ par1j = {"ny" : 21 , "nx" : 11 , "nt" : 20 , "imag" : 1j , "dtype" : "complex128" } # complex
2122
2223np .random .seed (10 )
2324
2425
25- @pytest .mark .parametrize ("par" , [(par1 ), (par2 )])
26+ @pytest .mark .parametrize ("par" , [(par1 ), (par1s ), ( par1j )])
2627def test_Transpose_2dsignal (par ):
2728 """Dot-test and adjoint for Transpose operator for 2d signals"""
29+ dtype = np .empty (0 , dtype = par ["dtype" ]).real .dtype
30+
2831 dims = (par ["ny" ], par ["nx" ])
29- x = np .arange (par ["ny" ] * par ["nx" ]).reshape (dims ) + par ["imag" ] * np . arange (
30- par [ "ny" ] * par [ "nx" ]
31- ).reshape (dims )
32+ x = np .arange (par ["ny" ] * par ["nx" ], dtype = dtype ).reshape (dims ) + par [
33+ "imag"
34+ ] * np . arange ( par [ "ny" ] * par [ "nx" ], dtype = dtype ).reshape (dims )
3235
3336 Top = Transpose (dims = dims , axes = (1 , 0 ), dtype = par ["dtype" ])
3437 assert dottest (
@@ -44,19 +47,23 @@ def test_Transpose_2dsignal(par):
4447 y = y .reshape (Top .dimsd )
4548 xadj = xadj .reshape (Top .dims )
4649
50+ assert y .dtype == par ["dtype" ]
51+ assert xadj .dtype == par ["dtype" ]
4752 assert_array_equal (x , xadj )
4853 assert_array_equal (y , x .T )
4954
5055
51- @pytest .mark .parametrize ("par" , [(par1 ), (par2 )])
56+ @pytest .mark .parametrize ("par" , [(par1 ), (par1s ), ( par1j )])
5257def test_Transpose_3dsignal (par ):
5358 """Dot-test and adjoint for Transpose operator for 3d signals"""
59+ dtype = np .empty (0 , dtype = par ["dtype" ]).real .dtype
60+
5461 dims = (par ["ny" ], par ["nx" ], par ["nt" ])
55- x = np .arange (par ["ny" ] * par ["nx" ] * par ["nt" ]).reshape (dims ) + par [
62+ x = np .arange (par ["ny" ] * par ["nx" ] * par ["nt" ], dtype = dtype ).reshape (dims ) + par [
5663 "imag"
57- ] * np .arange (par ["ny" ] * par ["nx" ] * par ["nt" ]).reshape (dims )
64+ ] * np .arange (par ["ny" ] * par ["nx" ] * par ["nt" ], dtype = dtype ).reshape (dims )
5865
59- Top = Transpose (dims = dims , axes = (2 , 1 , 0 ))
66+ Top = Transpose (dims = dims , axes = (2 , 1 , 0 ), dtype = par [ "dtype" ] )
6067 assert dottest (
6168 Top ,
6269 npp .prod (dims ),
@@ -71,4 +78,6 @@ def test_Transpose_3dsignal(par):
7178 y = y .reshape (Top .dimsd )
7279 xadj = xadj .reshape (Top .dims )
7380
81+ assert y .dtype == par ["dtype" ]
82+ assert xadj .dtype == par ["dtype" ]
7483 assert_array_equal (x , xadj )
0 commit comments