MCPcopy Index your code
hub / github.com/numpy/numpy / test_half_fpe

Method test_half_fpe

numpy/_core/tests/test_half.py:514–577  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

512 @pytest.mark.skipif(IS_WASM,
513 reason="fp exceptions don't work in wasm.")
514 def test_half_fpe(self):
515 with np.errstate(all='raise'):
516 sx16 = np.array((1e-4,), dtype=float16)
517 bx16 = np.array((1e4,), dtype=float16)
518 sy16 = float16(1e-4)
519 by16 = float16(1e4)
520
521 # Underflow errors
522 assert_raises_fpe('underflow', lambda a, b: a * b, sx16, sx16)
523 assert_raises_fpe('underflow', lambda a, b: a * b, sx16, sy16)
524 assert_raises_fpe('underflow', lambda a, b: a * b, sy16, sx16)
525 assert_raises_fpe('underflow', lambda a, b: a * b, sy16, sy16)
526 assert_raises_fpe('underflow', lambda a, b: a / b, sx16, bx16)
527 assert_raises_fpe('underflow', lambda a, b: a / b, sx16, by16)
528 assert_raises_fpe('underflow', lambda a, b: a / b, sy16, bx16)
529 assert_raises_fpe('underflow', lambda a, b: a / b, sy16, by16)
530 assert_raises_fpe('underflow', lambda a, b: a / b,
531 float16(2.**-14), float16(2**11))
532 assert_raises_fpe('underflow', lambda a, b: a / b,
533 float16(-2.**-14), float16(2**11))
534 assert_raises_fpe('underflow', lambda a, b: a / b,
535 float16(2.**-14 + 2**-24), float16(2))
536 assert_raises_fpe('underflow', lambda a, b: a / b,
537 float16(-2.**-14 - 2**-24), float16(2))
538 assert_raises_fpe('underflow', lambda a, b: a / b,
539 float16(2.**-14 + 2**-23), float16(4))
540
541 # Overflow errors
542 assert_raises_fpe('overflow', lambda a, b: a * b, bx16, bx16)
543 assert_raises_fpe('overflow', lambda a, b: a * b, bx16, by16)
544 assert_raises_fpe('overflow', lambda a, b: a * b, by16, bx16)
545 assert_raises_fpe('overflow', lambda a, b: a * b, by16, by16)
546 assert_raises_fpe('overflow', lambda a, b: a / b, bx16, sx16)
547 assert_raises_fpe('overflow', lambda a, b: a / b, bx16, sy16)
548 assert_raises_fpe('overflow', lambda a, b: a / b, by16, sx16)
549 assert_raises_fpe('overflow', lambda a, b: a / b, by16, sy16)
550 assert_raises_fpe('overflow', lambda a, b: a + b,
551 float16(65504), float16(17))
552 assert_raises_fpe('overflow', lambda a, b: a - b,
553 float16(-65504), float16(17))
554 assert_raises_fpe('overflow', np.nextafter, float16(65504), float16(np.inf))
555 assert_raises_fpe('overflow', np.nextafter, float16(-65504), float16(-np.inf)) # noqa: E501
556 assert_raises_fpe('overflow', np.spacing, float16(65504))
557
558 # Invalid value errors
559 assert_raises_fpe('invalid', np.divide, float16(np.inf), float16(np.inf))
560 assert_raises_fpe('invalid', np.spacing, float16(np.inf))
561 assert_raises_fpe('invalid', np.spacing, float16(np.nan))
562
563 # These should not raise
564 float16(65472) + float16(32)
565 float16(2**-13) / float16(2)
566 float16(2**-14) / float16(2**10)
567 np.spacing(float16(-65504))
568 np.nextafter(float16(65504), float16(-np.inf))
569 np.nextafter(float16(-65504), float16(np.inf))
570 np.nextafter(float16(np.inf), float16(0))
571 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