@@ -1442,6 +1442,30 @@ def test_full_dtype_inference():
1442
1442
assert np .issubdtype (dpt .full (10 , 0.3 - 2j , dtype = rdt ).dtype , np .floating )
1443
1443
1444
1444
1445
+ @pytest .mark .parametrize ("dt" , ["f2" , "f4" , "f8" ])
1446
+ def test_full_special_fp (dt ):
1447
+ """See gh-1314"""
1448
+ q = get_queue_or_skip ()
1449
+ skip_if_dtype_not_supported (dt , q )
1450
+
1451
+ ar = dpt .full (10 , fill_value = dpt .nan )
1452
+ err_msg = f"Failed for fill_value=dpt.nan and dtype { dt } "
1453
+ assert dpt .isnan (ar [0 ]), err_msg
1454
+
1455
+ ar = dpt .full (10 , fill_value = dpt .inf )
1456
+ err_msg = f"Failed for fill_value=dpt.inf and dtype { dt } "
1457
+ assert dpt .isinf (ar [0 ]) and dpt .greater (ar [0 ], 0 ), err_msg
1458
+
1459
+ ar = dpt .full (10 , fill_value = - dpt .inf )
1460
+ err_msg = f"Failed for fill_value=-dpt.inf and dtype { dt } "
1461
+ assert dpt .isinf (ar [0 ]) and dpt .less (ar [0 ], 0 ), err_msg
1462
+
1463
+ ar = dpt .full (10 , fill_value = dpt .pi )
1464
+ err_msg = f"Failed for fill_value=dpt.pi and dtype { dt } "
1465
+ check = abs (float (ar [0 ]) - dpt .pi ) < 16 * dpt .finfo (ar .dtype ).eps
1466
+ assert check , err_msg
1467
+
1468
+
1445
1469
def test_full_fill_array ():
1446
1470
q = get_queue_or_skip ()
1447
1471
0 commit comments