gmpy2 cmp and cmp_abs
=====================

>>> import gmpy2
>>> from gmpy2 import mpz, mpq, mpfr, mpc, cmp, cmp_abs, nan, inf, zero

MPZ Test comparisons
--------------------

>>> cmp(0,mpz(0)), cmp(1,mpz(0)), cmp(0,mpz(1)), cmp(-1,mpz(0)), cmp(0,mpz(-1))
(0, 1, -1, -1, 1)
>>> cmp_abs(mpz(0),0), cmp_abs(mpz(1),0), cmp_abs(mpz(0),1), cmp_abs(mpz(-1),0), cmp_abs(mpz(0), -1)
(0, 1, -1, 1, -1)
>>> a=mpz(-10)
>>> cmp_abs(a,0)
1
>>> a
mpz(-10)
>>> cmp_abs(100,a)
1
>>> a
mpz(-10)

MPQ Test comparisons
--------------------

>>> cmp(mpq(1,2), mpq(1,2)), cmp(mpq(-1,2), mpq(1,2)), cmp(mpq(1,2), mpq(-1,2))
(0, -1, 1)
>>> cmp(0, mpq(1,2)), cmp(mpq(1,2), 0)
(-1, 1)
>>> cmp_abs(mpq(1,2), mpq(1,3)), cmp_abs(mpq(-1,2), mpq(1,3)), cmp_abs(mpq(1,2),mpq(-1,3))
(1, 1, 1)
>>> cmp_abs(mpq(1,4), mpq(1,3)), cmp_abs(mpq(-1,4), mpq(1,3)), cmp_abs(mpq(1,4),mpq(-1,3))
(-1, -1, -1)

MPFR Test comparisons
---------------------

>>> cmp(mpfr(0), mpfr(0)), cmp(mpfr(0), mpz(0)), cmp(mpfr(0), mpq(0,1))
(0, 0, 0)
>>> cmp(zero(-1), zero(-1)), cmp(zero(1), zero(-1)), cmp(zero(-1), zero(1))
(0, 0, 0)
>>> cmp(mpfr(1), mpfr(0)), cmp(mpfr(1), mpz(0)), cmp(mpfr(1), mpq(0,1))
(1, 1, 1)
>>> cmp(mpfr(-1), mpfr(0)), cmp(mpfr(-1), mpz(0)), cmp(mpfr(-1), mpq(0,1))
(-1, -1, -1)
>>> cmp(nan(), mpfr(0)), cmp(nan(), mpz(0)), cmp(nan(), mpq(0,1))
(0, 0, 0)
>>> gmpy2.get_context().clear_flags()
>>> cmp(nan(), 1)
0
>>> gmpy2.get_context().erange
True
>>> cmp_abs(mpfr(-1), mpfr(0)), cmp_abs(mpfr(-1), mpz(0)), cmp_abs(mpfr(-1), mpq(0,1))
(1, 1, 1)
>>> cmp_abs(mpfr(0), mpfr(-1)), cmp_abs(mpz(0), mpfr(-1)), cmp_abs(mpq(0,1), mpfr(-1))
(-1, -1, -1)

MPC Test comparisons
--------------------

>>> cmp(mpc(1,2), mpc(3,4))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: ** message detail varies **
>>> cmp_abs(mpc(1,2), mpc(3,4)) # doctest: +SKIP_MPC_LESS_THAN_110
-1
>>> cmp_abs(mpc(1,2), mpc(1,2)) # doctest: +SKIP_MPC_LESS_THAN_110
0
>>> cmp_abs(mpc(3,4), mpc(1,2)) # doctest: +SKIP_MPC_LESS_THAN_110
1
>>> gmpy2.get_context().clear_flags()
>>> nan()
mpfr('nan')
>>> gmpy2.get_context().erange
False
>>> cmp_abs(mpc(nan(),1), mpc(4.5)) # doctest: +SKIP_MPC_LESS_THAN_110
0
>>> gmpy2.get_context().erange # doctest: +SKIP_MPC_LESS_THAN_110
True





