|
3 | 3 | import math |
4 | 4 | import operator |
5 | 5 | import random |
| 6 | +import sys |
6 | 7 | from concurrent.futures import ThreadPoolExecutor |
7 | 8 |
|
8 | 9 | import pytest |
|
11 | 12 |
|
12 | 13 | import mpmath |
13 | 14 | from mpmath import (ceil, fadd, fdiv, floor, fmul, fneg, fp, frac, fsub, inf, |
14 | | - isinf, isint, isnan, isnormal, isspecial, iv, monitor, mp, |
15 | | - mpc, mpf, mpi, nan, ninf, nint, nint_distance, nstr, pi, |
16 | | - workprec) |
| 15 | + isinf, isint, isnan, isnormal, iv, monitor, mp, mpc, mpf, |
| 16 | + mpi, nan, ninf, nint, nint_distance, nstr, pi, workprec) |
17 | 17 | from mpmath.libmp import (MPQ, MPZ, finf, fnan, fninf, fnone, fone, from_float, |
18 | 18 | from_int, from_pickable, from_str, isprime, mpf_add, |
19 | 19 | mpf_mul, mpf_sub, round_down, round_nearest, |
@@ -462,40 +462,50 @@ def test_isnan_etc(): |
462 | 462 | assert isinf(MPQ(3, 2)) is False |
463 | 463 | assert isinf(MPQ(0, 1)) is False |
464 | 464 | pytest.raises(TypeError, lambda: isinf(object())) |
465 | | - assert isspecial(3) is False |
466 | | - assert isspecial(3.5) is False |
467 | | - assert isspecial(mpf(3.5)) is False |
468 | | - assert isspecial(0) is True |
469 | | - assert isspecial(mpf(0)) is True |
470 | | - assert isspecial(0.0) is True |
471 | | - assert isspecial(inf) is True |
472 | | - assert isspecial(-inf) is True |
473 | | - assert isspecial(nan) is True |
474 | | - assert isspecial(float(inf)) is True |
475 | | - assert isspecial(mpc(0, 0)) is True |
476 | | - assert isspecial(mpc(3, 0)) is False |
477 | | - assert isspecial(mpc(0, 3)) is False |
478 | | - assert isspecial(mpc(3, 3)) is False |
479 | | - assert isspecial(mpc(0, nan)) is True |
480 | | - assert isspecial(mpc(0, inf)) is True |
481 | | - assert isspecial(mpc(3, nan)) is True |
482 | | - assert isspecial(mpc(3, inf)) is True |
483 | | - assert isspecial(mpc(3, -inf)) is True |
484 | | - assert isspecial(mpc(nan, 0)) is True |
485 | | - assert isspecial(mpc(inf, 0)) is True |
486 | | - assert isspecial(mpc(nan, 3)) is True |
487 | | - assert isspecial(mpc(inf, 3)) is True |
488 | | - assert isspecial(mpc(inf, nan)) is True |
489 | | - assert isspecial(mpc(nan, inf)) is True |
490 | | - assert isspecial(mpc(nan, nan)) is True |
491 | | - assert isspecial(mpc(inf, inf)) is True |
492 | | - assert isspecial(MPQ(3, 2)) is False |
493 | | - assert isspecial(MPQ(0, 1)) is True |
494 | | - pytest.raises(TypeError, lambda: isspecial(object())) |
495 | | - assert isspecial(5e-324) is False # issue 946 |
496 | | - assert fp.isspecial(5e-324) is False |
497 | | - assert fp.isspecial(0.0) is True |
498 | | - assert fp.isspecial(-0.0) is True |
| 465 | + assert isnormal(3) is True |
| 466 | + assert isnormal(3.5) is True |
| 467 | + assert isnormal(mpf(3.5)) is True |
| 468 | + assert isnormal(0) is False |
| 469 | + assert isnormal(mpf(0)) is False |
| 470 | + assert isnormal(0.0) is False |
| 471 | + assert isnormal(inf) is False |
| 472 | + assert isnormal(-inf) is False |
| 473 | + assert isnormal(nan) is False |
| 474 | + assert isnormal(float(inf)) is False |
| 475 | + assert isnormal(mpc(0, 0)) is False |
| 476 | + assert isnormal(mpc(3, 0)) is True |
| 477 | + assert isnormal(mpc(0, 3)) is True |
| 478 | + assert isnormal(mpc(3, 3)) is True |
| 479 | + assert isnormal(mpc(0, nan)) is False |
| 480 | + assert isnormal(mpc(0, inf)) is False |
| 481 | + assert isnormal(mpc(3, nan)) is False |
| 482 | + assert isnormal(mpc(3, inf)) is False |
| 483 | + assert isnormal(mpc(3, -inf)) is False |
| 484 | + assert isnormal(mpc(nan, 0)) is False |
| 485 | + assert isnormal(mpc(inf, 0)) is False |
| 486 | + assert isnormal(mpc(nan, 3)) is False |
| 487 | + assert isnormal(mpc(inf, 3)) is False |
| 488 | + assert isnormal(mpc(inf, nan)) is False |
| 489 | + assert isnormal(mpc(nan, inf)) is False |
| 490 | + assert isnormal(mpc(nan, nan)) is False |
| 491 | + assert isnormal(mpc(inf, inf)) is False |
| 492 | + assert isnormal(MPQ(3, 2)) is True |
| 493 | + assert isnormal(MPQ(0, 1)) is False |
| 494 | + pytest.raises(TypeError, lambda: isnormal(object())) |
| 495 | + assert isnormal(math.nextafter(0, 1)) is True # issue 946 |
| 496 | + assert fp.isnormal(math.nextafter(0, 1)) is False |
| 497 | + assert fp.isnormal(0.0) is False |
| 498 | + assert fp.isnormal(-0.0) is False |
| 499 | + assert fp.isnormal(fp.nan) is False |
| 500 | + assert fp.isnormal(fp.inf) is False |
| 501 | + assert fp.isnormal(fp.ninf) is False |
| 502 | + assert fp.isnormal(1.0) is True |
| 503 | + assert fp.isnormal(sys.float_info.min) is True |
| 504 | + assert fp.isnormal(1+0j) is True |
| 505 | + assert fp.isnormal(0j) is False |
| 506 | + assert fp.isnormal(-0j) is False |
| 507 | + assert fp.isnormal(1+1j) is True |
| 508 | + assert fp.isnormal(complex('inf+1j')) is False |
499 | 509 | assert isint(3) is True |
500 | 510 | assert isint(0) is True |
501 | 511 | assert isint(int(3)) is True |
@@ -545,12 +555,9 @@ def test_isnan_etc(): |
545 | 555 | assert mp.isnpint(0 + 0.1j) is False |
546 | 556 | assert mp.isnpint(inf) is False |
547 | 557 | with pytest.deprecated_call(): |
548 | | - for ctx in [mp, fp]: |
549 | | - assert ctx.isnormal(1) is True |
550 | | - assert ctx.isnormal(0.0) is False |
551 | | - assert ctx.isnormal(ctx.mpc(0)) is False |
552 | | - assert ctx.isnormal(ctx.mpc(0, 1)) is True |
553 | | - assert ctx.isnormal(ctx.mpc(1, inf)) is False |
| 558 | + assert fp.is_special(1) is False |
| 559 | + with pytest.deprecated_call(): |
| 560 | + assert fp.is_special(0.0) is True |
554 | 561 |
|
555 | 562 |
|
556 | 563 | def test_isprime(): |
|
0 commit comments