@@ -623,3 +623,37 @@ def test_asarray_support_for_usm_ndarray_protocol(usm_type):
623623 assert x.dtype == y3.dtype
624624 assert y3.usm_data.reference_obj is None
625625 assert dpt.all(x[dpt.newaxis, :] == y3)
626+
627+
628+ @pytest.mark.parametrize("dt", [dpt.float16, dpt.float64, dpt.complex128])
629+ def test_asarray_to_device_with_unsupported_dtype(dt):
630+ if dt == dpt.float64 or dt == dpt.complex128:
631+ aspect = "fp64"
632+ else:
633+ aspect = "fp16"
634+ try:
635+ d0 = dpctl.select_device_with_aspects(aspect)
636+ except dpctl.SyclDeviceCreationError:
637+ pytest.skip("No device with aspect for test")
638+
639+ d1 = None
640+ try:
641+ d1 = dpctl.select_device_with_aspects("cpu", excluded_aspects=[aspect])
642+ except dpctl.SyclDeviceCreationError:
643+ pass
644+ try:
645+ d1 = dpctl.select_device_with_aspects("gpu", excluded_aspects=[aspect])
646+ except dpctl.SyclDeviceCreationError:
647+ pass
648+ try:
649+ d1 = dpctl.select_device_with_aspects(
650+ "accelerator", excluded_aspects=[aspect]
651+ )
652+ except dpctl.SyclDeviceCreationError:
653+ pass
654+ if d1 is None:
655+ pytest.skip("No device with missing aspect for test")
656+
657+ x = dpt.ones(10, dtype=dt, device=d0)
658+ y = dpt.asarray(x, device=d1)
659+ assert y.sycl_device == d1
0 commit comments