Skip to content

Commit 4c64cf4

Browse files
committed
Adds a test for fixed behavior of repeat with 0-size arrays
1 parent 57033b0 commit 4c64cf4

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

dpctl/tests/test_usm_ndarray_manipulation.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1485,3 +1485,35 @@ def test_tile_arg_validation():
14851485
x = dpt.empty(())
14861486
with pytest.raises(TypeError):
14871487
dpt.tile(x, dict())
1488+
1489+
1490+
def test_repeat_0_size():
1491+
get_queue_or_skip()
1492+
1493+
x = dpt.ones((0, 10, 0), dtype="i4")
1494+
repetitions = 2
1495+
res = dpt.repeat(x, repetitions)
1496+
assert res.shape == (0,)
1497+
res = dpt.repeat(x, repetitions, axis=2)
1498+
assert res.shape == x.shape
1499+
res = dpt.repeat(x, repetitions, axis=1)
1500+
axis_sz = x.shape[1] * repetitions
1501+
assert res.shape == (0, 20, 0)
1502+
1503+
repetitions = dpt.asarray(2, dtype="i4")
1504+
res = dpt.repeat(x, repetitions)
1505+
assert res.shape == (0,)
1506+
res = dpt.repeat(x, repetitions, axis=2)
1507+
assert res.shape == x.shape
1508+
res = dpt.repeat(x, repetitions, axis=1)
1509+
assert res.shape == (0, 20, 0)
1510+
1511+
repetitions = dpt.arange(10, dtype="i4")
1512+
res = dpt.repeat(x, repetitions, axis=1)
1513+
axis_sz = dpt.sum(repetitions)
1514+
assert res.shape == (0, axis_sz, 0)
1515+
1516+
repetitions = (2,) * 10
1517+
res = dpt.repeat(x, repetitions, axis=1)
1518+
axis_sz = 2 * x.shape[1]
1519+
assert res.shape == (0, axis_sz, 0)

0 commit comments

Comments
 (0)