Skip to content

Commit abe0d2b

Browse files
Make TestPad ordered
1 parent bb703b8 commit abe0d2b

File tree

1 file changed

+16
-12
lines changed

1 file changed

+16
-12
lines changed

dpnp/tests/test_arraypad.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)