77from sympy import Expr , Number , Symbol
88from devito import (Constant , Dimension , Grid , Function , solve , TimeFunction , Eq , # noqa
99 Operator , SubDimension , norm , Le , Ge , Gt , Lt , Abs , sin , cos ,
10- Min , Max , Real , Imag , Conj , SubDomain )
10+ Min , Max , Real , Imag , Conj , SubDomain , configuration )
1111from devito .finite_differences .differentiable import SafeInv , Weights , Mul
1212from devito .ir import Expression , FindNodes , ccode
1313from devito .symbolics import (retrieve_functions , retrieve_indexed , evalrel , # noqa
@@ -924,90 +924,79 @@ def setup_basic(self, dtype):
924924 f_imag = Function (name = 'f_imag' , grid = grid )
925925 return f , f_real , f_imag
926926
927- def run_operator (self , eqs , language ):
928- with switchconfig (language = language ):
929- Operator (eqs )()
930-
931927 def test_devito_print (self ):
932928 f , _ , _ = self .setup_basic (np .complex64 )
933929
934930 assert str (Real (f )) == 'Real(f(x))'
935931 assert str (Imag (f )) == 'Imag(f(x))'
936932
937- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
938- def test_printing (self , language ):
933+ def test_printing (self ):
939934 f , f_real , f_imag = self .setup_basic (np .complex64 )
940935
941936 eq_re = Eq (f_real , Real (f ))
942937 eq_im = Eq (f_imag , Imag (f ))
943938
944- with switchconfig (language = language ):
945- op = Operator ([eq_re , eq_im ])
939+ op = Operator ([eq_re , eq_im ])
946940
947- if language in ('CXX' , 'CXXopenmp' ):
941+ if configuration [ ' language' ] in ('CXX' , 'CXXopenmp' ):
948942 assert "f_real[x + 1] = std::real(f[x + 1])" in str (op .ccode )
949943 assert "f_imag[x + 1] = std::imag(f[x + 1])" in str (op .ccode )
950944
951945 else :
952946 assert "f_real[x + 1] = crealf(f[x + 1])" in str (op .ccode )
953947 assert "f_imag[x + 1] = cimagf(f[x + 1])" in str (op .ccode )
954948
955- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
956949 @pytest .mark .parametrize ('dtype' , [np .complex64 , np .complex128 ])
957- def test_trivial (self , language , dtype ):
950+ def test_trivial (self , dtype ):
958951 f , f_real , f_imag = self .setup_basic (dtype )
959952
960953 eq_re = Eq (f_real , Real (f + 1. ))
961954 eq_im = Eq (f_imag , Imag (f + 1. ))
962955
963- self . run_operator ([eq_re , eq_im ], language )
956+ Operator ([eq_re , eq_im ])( )
964957
965958 rcheck = np .array ([2. , 3. , 4. , 5. , 6. ])
966959 icheck = np .array ([12. , 11. , 10. , 9. , 8. ])
967960 assert np .all (np .isclose (f_real .data , rcheck ))
968961 assert np .all (np .isclose (f_imag .data , icheck ))
969962
970- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
971963 @pytest .mark .parametrize ('dtype' , [np .complex64 , np .complex128 ])
972- def test_trivial_imag (self , language , dtype ):
964+ def test_trivial_imag (self , dtype ):
973965 f , f_real , f_imag = self .setup_basic (dtype )
974966
975967 eq_re = Eq (f_real , Real (f + 1j ))
976968 eq_im = Eq (f_imag , Imag (f + 1j ))
977969
978- self . run_operator ([eq_re , eq_im ], language )
970+ Operator ([eq_re , eq_im ])( )
979971
980972 rcheck = np .array ([1. , 2. , 3. , 4. , 5. ])
981973 icheck = np .array ([13. , 12. , 11. , 10. , 9. ])
982974 assert np .all (np .isclose (f_real .data , rcheck ))
983975 assert np .all (np .isclose (f_imag .data , icheck ))
984976
985- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
986- def test_deriv (self , language ):
977+ def test_deriv (self ):
987978 f , f_real , f_imag = self .setup_basic (np .complex64 )
988979
989980 eq_re = Eq (f_real , Real (f .dx ))
990981 eq_im = Eq (f_imag , Imag (f .dx ))
991982
992- self . run_operator ([eq_re , eq_im ], language )
983+ Operator ([eq_re , eq_im ])( )
993984
994985 assert np .all (np .isclose (f_real .data , 1. ))
995986 assert np .all (np .isclose (f_imag .data , - 1. ))
996987
997- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
998- def test_outer_deriv (self , language ):
988+ def test_outer_deriv (self ):
999989 f , f_real , f_imag = self .setup_basic (np .complex64 )
1000990
1001991 eq_re = Eq (f_real , Real (f ).dx )
1002992 eq_im = Eq (f_imag , Imag (f ).dx )
1003993
1004- self . run_operator ([eq_re , eq_im ], language )
994+ Operator ([eq_re , eq_im ])( )
1005995
1006996 assert np .all (np .isclose (f_real .data , 1. ))
1007997 assert np .all (np .isclose (f_imag .data , - 1. ))
1008998
1009- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
1010- def test_mul (self , language ):
999+ def test_mul (self ):
10111000 grid = Grid (shape = (5 ,))
10121001
10131002 f = Function (name = 'f' , grid = grid , dtype = np .complex64 )
@@ -1027,22 +1016,21 @@ def test_mul(self, language):
10271016 eq_fh_re = Eq (fh_re , Real (f * h ))
10281017 eq_fh_im = Eq (fh_im , Imag (f * h ))
10291018
1030- self . run_operator ([eq_fg_re , eq_fg_im , eq_fh_re , eq_fh_im ], language )
1019+ Operator ([eq_fg_re , eq_fg_im , eq_fh_re , eq_fh_im ])( )
10311020
10321021 assert np .all (np .isclose (fg_re .data , 2. ))
10331022 assert np .all (np .isclose (fg_im .data , 2. ))
10341023
10351024 assert np .all (np .isclose (fh_re .data , - 2. ))
10361025 assert np .all (np .isclose (fh_im .data , 2. ))
10371026
1038- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
1039- def test_conj (self , language ):
1027+ def test_conj (self ):
10401028 grid = Grid (shape = (5 ,))
10411029 f = Function (name = 'f' , grid = grid , dtype = np .complex64 )
10421030 g = Function (name = 'g' , grid = grid , dtype = np .complex64 )
10431031
10441032 f .data [:] = np .arange (5 ) + 1j * np .arange (5 )[::- 1 ]
10451033
1046- self . run_operator ([Eq (g , Conj (f ))], language )
1034+ Operator ([Eq (g , Conj (f ))])( )
10471035
10481036 assert np .all (np .isclose (g .data , np .conj (f .data )))
0 commit comments