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 , switchconfig )
10+ Min , Max , Real , Imag , Conj , configuration )
1111from devito .finite_differences .differentiable import SafeInv , Weights
1212from devito .ir import Expression , FindNodes , ccode
1313from devito .symbolics import (retrieve_functions , retrieve_indexed , evalrel , # noqa
@@ -886,90 +886,79 @@ def setup_basic(self, dtype):
886886 f_imag = Function (name = 'f_imag' , grid = grid )
887887 return f , f_real , f_imag
888888
889- def run_operator (self , eqs , language ):
890- with switchconfig (language = language ):
891- Operator (eqs )()
892-
893889 def test_devito_print (self ):
894890 f , _ , _ = self .setup_basic (np .complex64 )
895891
896892 assert str (Real (f )) == 'Real(f(x))'
897893 assert str (Imag (f )) == 'Imag(f(x))'
898894
899- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
900- def test_printing (self , language ):
895+ def test_printing (self ):
901896 f , f_real , f_imag = self .setup_basic (np .complex64 )
902897
903898 eq_re = Eq (f_real , Real (f ))
904899 eq_im = Eq (f_imag , Imag (f ))
905900
906- with switchconfig (language = language ):
907- op = Operator ([eq_re , eq_im ])
901+ op = Operator ([eq_re , eq_im ])
908902
909- if language in ('CXX' , 'CXXopenmp' ):
903+ if configuration [ ' language' ] in ('CXX' , 'CXXopenmp' ):
910904 assert "f_real[x + 1] = std::real(f[x + 1])" in str (op .ccode )
911905 assert "f_imag[x + 1] = std::imag(f[x + 1])" in str (op .ccode )
912906
913907 else :
914908 assert "f_real[x + 1] = crealf(f[x + 1])" in str (op .ccode )
915909 assert "f_imag[x + 1] = cimagf(f[x + 1])" in str (op .ccode )
916910
917- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
918911 @pytest .mark .parametrize ('dtype' , [np .complex64 , np .complex128 ])
919- def test_trivial (self , language , dtype ):
912+ def test_trivial (self , dtype ):
920913 f , f_real , f_imag = self .setup_basic (dtype )
921914
922915 eq_re = Eq (f_real , Real (f + 1. ))
923916 eq_im = Eq (f_imag , Imag (f + 1. ))
924917
925- self . run_operator ([eq_re , eq_im ], language )
918+ Operator ([eq_re , eq_im ])( )
926919
927920 rcheck = np .array ([2. , 3. , 4. , 5. , 6. ])
928921 icheck = np .array ([12. , 11. , 10. , 9. , 8. ])
929922 assert np .all (np .isclose (f_real .data , rcheck ))
930923 assert np .all (np .isclose (f_imag .data , icheck ))
931924
932- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
933925 @pytest .mark .parametrize ('dtype' , [np .complex64 , np .complex128 ])
934- def test_trivial_imag (self , language , dtype ):
926+ def test_trivial_imag (self , dtype ):
935927 f , f_real , f_imag = self .setup_basic (dtype )
936928
937929 eq_re = Eq (f_real , Real (f + 1j ))
938930 eq_im = Eq (f_imag , Imag (f + 1j ))
939931
940- self . run_operator ([eq_re , eq_im ], language )
932+ Operator ([eq_re , eq_im ])( )
941933
942934 rcheck = np .array ([1. , 2. , 3. , 4. , 5. ])
943935 icheck = np .array ([13. , 12. , 11. , 10. , 9. ])
944936 assert np .all (np .isclose (f_real .data , rcheck ))
945937 assert np .all (np .isclose (f_imag .data , icheck ))
946938
947- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
948- def test_deriv (self , language ):
939+ def test_deriv (self ):
949940 f , f_real , f_imag = self .setup_basic (np .complex64 )
950941
951942 eq_re = Eq (f_real , Real (f .dx ))
952943 eq_im = Eq (f_imag , Imag (f .dx ))
953944
954- self . run_operator ([eq_re , eq_im ], language )
945+ Operator ([eq_re , eq_im ])( )
955946
956947 assert np .all (np .isclose (f_real .data , 1. ))
957948 assert np .all (np .isclose (f_imag .data , - 1. ))
958949
959- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
960- def test_outer_deriv (self , language ):
950+ def test_outer_deriv (self ):
961951 f , f_real , f_imag = self .setup_basic (np .complex64 )
962952
963953 eq_re = Eq (f_real , Real (f ).dx )
964954 eq_im = Eq (f_imag , Imag (f ).dx )
965955
966- self . run_operator ([eq_re , eq_im ], language )
956+ Operator ([eq_re , eq_im ])( )
967957
968958 assert np .all (np .isclose (f_real .data , 1. ))
969959 assert np .all (np .isclose (f_imag .data , - 1. ))
970960
971- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
972- def test_mul (self , language ):
961+ def test_mul (self ):
973962 grid = Grid (shape = (5 ,))
974963
975964 f = Function (name = 'f' , grid = grid , dtype = np .complex64 )
@@ -989,22 +978,21 @@ def test_mul(self, language):
989978 eq_fh_re = Eq (fh_re , Real (f * h ))
990979 eq_fh_im = Eq (fh_im , Imag (f * h ))
991980
992- self . run_operator ([eq_fg_re , eq_fg_im , eq_fh_re , eq_fh_im ], language )
981+ Operator ([eq_fg_re , eq_fg_im , eq_fh_re , eq_fh_im ])( )
993982
994983 assert np .all (np .isclose (fg_re .data , 2. ))
995984 assert np .all (np .isclose (fg_im .data , 2. ))
996985
997986 assert np .all (np .isclose (fh_re .data , - 2. ))
998987 assert np .all (np .isclose (fh_im .data , 2. ))
999988
1000- @pytest .mark .parametrize ('language' , ['C' , 'CXX' , 'CXXopenmp' ])
1001- def test_conj (self , language ):
989+ def test_conj (self ):
1002990 grid = Grid (shape = (5 ,))
1003991 f = Function (name = 'f' , grid = grid , dtype = np .complex64 )
1004992 g = Function (name = 'g' , grid = grid , dtype = np .complex64 )
1005993
1006994 f .data [:] = np .arange (5 ) + 1j * np .arange (5 )[::- 1 ]
1007995
1008- self . run_operator ([Eq (g , Conj (f ))], language )
996+ Operator ([Eq (g , Conj (f ))])( )
1009997
1010998 assert np .all (np .isclose (g .data , np .conj (f .data )))
0 commit comments