MCPcopy Create free account
hub / github.com/numpy/numpy / test_half_fpe

Method test_half_fpe

numpy/core/tests/test_half.py:497–560  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

495 @pytest.mark.skipif(IS_WASM,
496 reason="fp exceptions don't work in wasm.")
497 def test_half_fpe(self):
498 with np.errstate(all='raise'):
499 sx16 = np.array((1e-4,), dtype=float16)
500 bx16 = np.array((1e4,), dtype=float16)
501 sy16 = float16(1e-4)
502 by16 = float16(1e4)
503
504 # Underflow errors
505 assert_raises_fpe('underflow', lambda a, b:a*b, sx16, sx16)
506 assert_raises_fpe('underflow', lambda a, b:a*b, sx16, sy16)
507 assert_raises_fpe('underflow', lambda a, b:a*b, sy16, sx16)
508 assert_raises_fpe('underflow', lambda a, b:a*b, sy16, sy16)
509 assert_raises_fpe('underflow', lambda a, b:a/b, sx16, bx16)
510 assert_raises_fpe('underflow', lambda a, b:a/b, sx16, by16)
511 assert_raises_fpe('underflow', lambda a, b:a/b, sy16, bx16)
512 assert_raises_fpe('underflow', lambda a, b:a/b, sy16, by16)
513 assert_raises_fpe('underflow', lambda a, b:a/b,
514 float16(2.**-14), float16(2**11))
515 assert_raises_fpe('underflow', lambda a, b:a/b,
516 float16(-2.**-14), float16(2**11))
517 assert_raises_fpe('underflow', lambda a, b:a/b,
518 float16(2.**-14+2**-24), float16(2))
519 assert_raises_fpe('underflow', lambda a, b:a/b,
520 float16(-2.**-14-2**-24), float16(2))
521 assert_raises_fpe('underflow', lambda a, b:a/b,
522 float16(2.**-14+2**-23), float16(4))
523
524 # Overflow errors
525 assert_raises_fpe('overflow', lambda a, b:a*b, bx16, bx16)
526 assert_raises_fpe('overflow', lambda a, b:a*b, bx16, by16)
527 assert_raises_fpe('overflow', lambda a, b:a*b, by16, bx16)
528 assert_raises_fpe('overflow', lambda a, b:a*b, by16, by16)
529 assert_raises_fpe('overflow', lambda a, b:a/b, bx16, sx16)
530 assert_raises_fpe('overflow', lambda a, b:a/b, bx16, sy16)
531 assert_raises_fpe('overflow', lambda a, b:a/b, by16, sx16)
532 assert_raises_fpe('overflow', lambda a, b:a/b, by16, sy16)
533 assert_raises_fpe('overflow', lambda a, b:a+b,
534 float16(65504), float16(17))
535 assert_raises_fpe('overflow', lambda a, b:a-b,
536 float16(-65504), float16(17))
537 assert_raises_fpe('overflow', np.nextafter, float16(65504), float16(np.inf))
538 assert_raises_fpe('overflow', np.nextafter, float16(-65504), float16(-np.inf))
539 assert_raises_fpe('overflow', np.spacing, float16(65504))
540
541 # Invalid value errors
542 assert_raises_fpe('invalid', np.divide, float16(np.inf), float16(np.inf))
543 assert_raises_fpe('invalid', np.spacing, float16(np.inf))
544 assert_raises_fpe('invalid', np.spacing, float16(np.nan))
545
546 # These should not raise
547 float16(65472)+float16(32)
548 float16(2**-13)/float16(2)
549 float16(2**-14)/float16(2**10)
550 np.spacing(float16(-65504))
551 np.nextafter(float16(65504), float16(-np.inf))
552 np.nextafter(float16(-65504), float16(np.inf))
553 np.nextafter(float16(np.inf), float16(0))
554 np.nextafter(float16(-np.inf), float16(0))

Callers

nothing calls this directly

Calls 1

assert_raises_fpeFunction · 0.85

Tested by

no test coverage detected