@@ -30,7 +30,11 @@ class TestPad:
3030 "empty" : {},
3131 }
3232
33- @pytest .mark .parametrize ("mode" , _all_modes .keys ())
33+ # .keys() returns set which is not ordered
34+ # consistent order is required by xdist plugin
35+ _modes = sorted (_all_modes .keys ())
36+
37+ @pytest .mark .parametrize ("mode" , _modes )
3438 def test_basic (self , mode ):
3539 a_np = numpy .arange (100 )
3640 a_dp = dpnp .array (a_np )
@@ -43,7 +47,7 @@ def test_basic(self, mode):
4347 else :
4448 assert_array_equal (result , expected )
4549
46- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
50+ @pytest .mark .parametrize ("mode" , _modes )
4751 def test_memory_layout_persistence (self , mode ):
4852 """Test if C and F order is preserved for all pad modes."""
4953 x = dpnp .ones ((5 , 10 ), order = "C" )
@@ -52,13 +56,13 @@ def test_memory_layout_persistence(self, mode):
5256 assert dpnp .pad (x , 5 , mode ).flags .f_contiguous
5357
5458 @pytest .mark .parametrize ("dtype" , get_all_dtypes (no_none = True ))
55- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
59+ @pytest .mark .parametrize ("mode" , _modes )
5660 def test_dtype_persistence (self , dtype , mode ):
5761 arr = dpnp .zeros ((3 , 2 , 1 ), dtype = dtype )
5862 result = dpnp .pad (arr , 1 , mode = mode )
5963 assert result .dtype == dtype
6064
61- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
65+ @pytest .mark .parametrize ("mode" , _modes )
6266 def test_non_contiguous_array (self , mode ):
6367 a_np = numpy .arange (24 ).reshape (4 , 6 )[::2 , ::2 ]
6468 a_dp = dpnp .arange (24 ).reshape (4 , 6 )[::2 , ::2 ]
@@ -73,12 +77,12 @@ def test_non_contiguous_array(self, mode):
7377
7478 # TODO: include "linear_ramp" when dpnp issue gh-2084 is resolved
7579 @pytest .mark .parametrize ("pad_width" , [0 , (0 , 0 ), ((0 , 0 ), (0 , 0 ))])
76- @pytest .mark .parametrize ("mode" , _all_modes . keys () - {"linear_ramp" })
80+ @pytest .mark .parametrize ("mode" , [ m for m in _modes if m not in {"linear_ramp" }] )
7781 def test_zero_pad_width (self , pad_width , mode ):
7882 arr = dpnp .arange (30 ).reshape (6 , 5 )
7983 assert_array_equal (arr , dpnp .pad (arr , pad_width , mode = mode ))
8084
81- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
85+ @pytest .mark .parametrize ("mode" , _modes )
8286 def test_pad_non_empty_dimension (self , mode ):
8387 a_np = numpy .ones ((2 , 0 , 2 ))
8488 a_dp = dpnp .array (a_np )
@@ -95,14 +99,14 @@ def test_pad_non_empty_dimension(self, mode):
9599 ((3 , 4 , 5 ), (0 , 1 , 2 )),
96100 ],
97101 )
98- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
102+ @pytest .mark .parametrize ("mode" , _modes )
99103 def test_misshaped_pad_width1 (self , pad_width , mode ):
100104 arr = dpnp .arange (30 ).reshape ((6 , 5 ))
101105 match = "operands could not be broadcast together"
102106 with pytest .raises (ValueError , match = match ):
103107 dpnp .pad (arr , pad_width , mode )
104108
105- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
109+ @pytest .mark .parametrize ("mode" , _modes )
106110 def test_misshaped_pad_width2 (self , mode ):
107111 arr = dpnp .arange (30 ).reshape ((6 , 5 ))
108112 match = (
@@ -115,7 +119,7 @@ def test_misshaped_pad_width2(self, mode):
115119 @pytest .mark .parametrize (
116120 "pad_width" , [- 2 , (- 2 ,), (3 , - 1 ), ((5 , 2 ), (- 2 , 3 )), ((- 4 ,), (2 ,))]
117121 )
118- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
122+ @pytest .mark .parametrize ("mode" , _modes )
119123 def test_negative_pad_width (self , pad_width , mode ):
120124 arr = dpnp .arange (30 ).reshape ((6 , 5 ))
121125 match = "index can't contain negative values"
@@ -126,14 +130,14 @@ def test_negative_pad_width(self, pad_width, mode):
126130 "pad_width" ,
127131 ["3" , "word" , None , 3.4 , complex (1 , - 1 ), ((- 2.1 , 3 ), (3 , 2 ))],
128132 )
129- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
133+ @pytest .mark .parametrize ("mode" , _modes )
130134 def test_bad_type (self , pad_width , mode ):
131135 arr = dpnp .arange (30 ).reshape ((6 , 5 ))
132136 match = "`pad_width` must be of integral type."
133137 with pytest .raises (TypeError , match = match ):
134138 dpnp .pad (arr , pad_width , mode )
135139
136- @pytest .mark .parametrize ("mode" , _all_modes . keys () )
140+ @pytest .mark .parametrize ("mode" , _modes )
137141 def test_kwargs (self , mode ):
138142 """Test behavior of pad's kwargs for the given mode."""
139143 allowed = self ._all_modes [mode ]
@@ -439,7 +443,7 @@ def test_pad_empty_dim_valid(self, mode):
439443
440444 @pytest .mark .parametrize (
441445 "mode" ,
442- _all_modes . keys () - {"constant" , "empty" },
446+ [ m for m in _modes if m not in {"constant" , "empty" }] ,
443447 )
444448 def test_pad_empty_dim_invalid (self , mode ):
445449 match = (
0 commit comments