Skip to content

Commit 631d4c3

Browse files
Merge pull request #1915 from IntelPython/fix-1913-empty-boolean-mask
Fix 1913 empty boolean mask
2 parents 68fddbc + 2a643dd commit 631d4c3

File tree

2 files changed

+27
-0
lines changed

2 files changed

+27
-0
lines changed

dpctl/tensor/_copy_utils.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -924,6 +924,8 @@ def _place_impl(ary, ary_mask, vals, axis=0):
924924
else:
925925
rhs = dpt.astype(vals, ary.dtype)
926926
rhs = dpt.broadcast_to(rhs, expected_vals_shape)
927+
if mask_nelems == 0:
928+
return
927929
dep_ev = _manager.submitted_events
928930
hev, pl_ev = ti._place(
929931
dst=ary,

dpctl/tests/test_usm_ndarray_indexing.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,31 @@ def test_boolean_indexing_validation():
405405
x[ii[0, :]]
406406

407407

408+
def test_boolean_indexing_getitem_empty_mask():
409+
get_queue_or_skip()
410+
x = dpt.ones((2, 3, 4), dtype="i4")
411+
ii = dpt.ones((0,), dtype="?")
412+
assert x[ii].size == 0
413+
ii1 = dpt.ones((0, 3), dtype="?")
414+
assert x[ii1].size == 0
415+
ii2 = dpt.ones((0, 3, 4), dtype="?")
416+
assert x[ii2].size == 0
417+
418+
419+
def test_boolean_indexing_setitem_empty_mask():
420+
get_queue_or_skip()
421+
x = dpt.ones((2, 3, 4), dtype="i4")
422+
ii = dpt.ones((0,), dtype="?")
423+
x[ii] = 0
424+
assert dpt.all(x == 1)
425+
ii1 = dpt.ones((0, 3), dtype="?")
426+
x[ii1] = 0
427+
assert dpt.all(x == 1)
428+
ii2 = dpt.ones((0, 3, 4), dtype="?")
429+
x[ii2] = 0
430+
assert dpt.all(x == 1)
431+
432+
408433
def test_integer_indexing_1d():
409434
get_queue_or_skip()
410435
x = dpt.arange(10, dtype="i4")

0 commit comments

Comments
 (0)