@@ -376,6 +376,39 @@ def test_square(self):
376
376
square = self .square (vdata )
377
377
assert square == data_square
378
378
379
+ def test_isfinite_isinf_isnan_signbit (self ):
380
+ pinf , ninf , nan = self ._pinfinity (), self ._ninfinity (), self ._nan ()
381
+ assert np .isnan (nan ) == True
382
+ assert np .isfinite (ninf ) == False
383
+ assert np .isfinite (pinf ) == False
384
+ assert np .isinf (ninf ) == True
385
+ assert np .isinf (pinf ) == True
386
+ assert np .signbit (pinf ) == False
387
+ assert np .signbit (ninf ) == True
388
+
389
+ def test_array_isfinite_isinf_isnan_signbit (self ):
390
+ size = 12
391
+ for t in [np .float32 , np .float64 ]:
392
+ arr = np .random .default_rng ().random (size , t )
393
+ assert np .isnan (arr )[2 ] == False
394
+ assert np .isfinite (arr )[4 ] == True
395
+ assert np .isinf (arr )[6 ] == False
396
+ assert np .signbit (arr )[8 ] == False
397
+
398
+ for t in [np .uint8 , np .uint16 , np .uint32 , np .uint64 ]:
399
+ arr = np .random .default_rng ().integers (0 ,100 ,size ,dtype = t )
400
+ assert np .isnan (arr )[2 ] == False
401
+ assert np .isfinite (arr )[4 ] == True
402
+ assert np .isinf (arr )[6 ] == False
403
+ assert np .signbit (arr )[8 ] == False
404
+
405
+ for t in [np .int8 , np .int16 , np .int32 , np .int64 ]:
406
+ arr = np .random .default_rng ().integers (- 100 ,0 ,size ,dtype = t )
407
+ assert np .isnan (arr )[2 ] == False
408
+ assert np .isfinite (arr )[4 ] == True
409
+ assert np .isinf (arr )[6 ] == False
410
+ assert np .signbit (arr )[8 ] == True
411
+
379
412
@pytest .mark .parametrize ("intrin, func" , [("ceil" , math .ceil ),
380
413
("trunc" , math .trunc ), ("floor" , math .floor ), ("rint" , round )])
381
414
def test_rounding (self , intrin , func ):
0 commit comments