Dpctl does not allow to change dtype to larger one thorugh the constructor call for 0-size array:
import dpctl, dpctl.tensor as dpt
dpctl.__version__
# Out: '0.21.0dev0+49.g5be8ef909c'
# create 0-sized array
a = dpt.zeros((0,), dtype='i2')
b = dpt.usm_ndarray((0,), dtype='i1', buffer=a) # it works
c = dpt.usm_ndarray((0,), dtype='i4', buffer=a) # it fails
ValueError Traceback (most recent call last)
Cell In[9], line 1
----> 1 c = dpt.usm_ndarray((0,), dtype='i4', buffer=a)
File dpctl/tensor/_usmarray.pyx:388, in dpctl.tensor._usmarray.usm_ndarray.__cinit__()
ValueError: buffer='[]' can not accommodate the requested array.
The input array has zero size, so it is expected that it can be casted to any data type.