@@ -623,3 +623,33 @@ 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+ aspect = "fp16" if dt == dpt .float16 else "fp64"
631+ try :
632+ d0 = dpctl .select_device_with_aspects (aspect )
633+ except dpctl .SyclDeviceCreationError :
634+ pytest .skip ("No device with aspect for test" )
635+ d1 = None
636+ try :
637+ d1 = dpctl .select_device_with_aspects ("cpu" , excluded_aspects = [aspect ])
638+ except dpctl .SyclDeviceCreationError :
639+ pass
640+ try :
641+ d1 = dpctl .select_device_with_aspects ("gpu" , excluded_aspects = [aspect ])
642+ except dpctl .SyclDeviceCreationError :
643+ pass
644+ try :
645+ d1 = dpctl .select_device_with_aspects (
646+ "accelerator" , excluded_aspects = [aspect ]
647+ )
648+ except dpctl .SyclDeviceCreationError :
649+ pass
650+ if d1 is None :
651+ pytest .skip ("No device with missing aspect for test" )
652+
653+ x = dpt .ones (10 , dtype = dt , device = d0 )
654+ y = dpt .asarray (x , device = d1 )
655+ assert y .sycl_device == d1
0 commit comments