/test/test_dec.txt
http://gmpy.googlecode.com/ · Plain Text · 122 lines · 112 code · 10 blank · 0 comment · 0 complexity · 1da208e01fdfc4461ac49391552d4ecc MD5 · raw file
- Interoperability with Decimal
- =============================
- >>> import gmpy2 as G
- >>> from gmpy2 import mpz, mpq, mpfr
- >>> from decimal import Decimal
- Test comparisons
- ----------------
- Non-trivial comparions between mpfr and Decimal instances are only equal
- when the fractional can be written at 1/2**n.
- >>> mpfr('123.456') == Decimal('123.456')
- False
- >>> mpfr('123.5') == Decimal('123.5')
- True
- >>> mpq(123456,1000) == Decimal('123.456')
- True
- >>> mpz(123) == Decimal(123)
- True
- >>> mpfr('123.456') > Decimal('123.456')
- True
- >>> mpfr('123.456') < Decimal('123.456')
- False
- >>> Decimal('123.456') > mpfr('123.456')
- False
- >>> Decimal('123.456') < mpfr('123.456')
- True
- Test elementary operations
- --------------------------
- >>> mpz(23) == Decimal(23)
- True
- >>> mpz(Decimal('123.456'))
- mpz(123)
- >>> mpq(Decimal('123.456'))
- mpq(15432,125)
- >>> mpfr(Decimal('123.456'))
- mpfr('123.456')
- >>> f = mpfr('123.456')
- >>> q = mpq('789123/1000')
- >>> z = mpz('234')
- >>> dd = Decimal('12.34')
- >>> fd = Decimal('123.456')
- >>> qd = Decimal('789.123')
- >>> zd = Decimal('234')
- >>> f+dd
- mpfr('135.79599999999999')
- >>> dd+f
- mpfr('135.79599999999999')
- >>> q+dd
- mpfr('801.46300000000008')
- >>> dd+q
- mpfr('801.46300000000008')
- >>> z+dd
- mpfr('246.34')
- >>> dd+z
- mpfr('246.34')
- >>> f-dd
- mpfr('111.116')
- >>> dd-f
- mpfr('-111.116')
- >>> q-dd
- mpfr('776.78300000000002')
- >>> dd-q
- mpfr('-776.78300000000002')
- >>> z-dd
- mpfr('221.66')
- >>> dd-z
- mpfr('-221.66')
- >>> f*dd
- mpfr('1523.44704')
- >>> dd*f
- mpfr('1523.44704')
- >>> q*dd
- mpfr('9737.7778200000012')
- >>> dd*q
- mpfr('9737.7778200000012')
- >>> z*dd
- mpfr('2887.5599999999999')
- >>> dd*z
- mpfr('2887.5599999999999')
- >>> f/dd
- mpfr('10.00453808752026')
- >>> dd/f
- mpfr('0.099954639709694135')
- >>> q/dd
- mpfr('63.948379254457052')
- >>> dd/q
- mpfr('0.015637612894314319')
- >>> z/dd
- mpfr('18.962722852512155')
- >>> dd/z
- mpfr('0.052735042735042738')
- >>> G.ceil(dd)
- mpfr('13.0')
- >>> G.floor(dd)
- mpfr('12.0')
- >>> G.trunc(dd)
- mpfr('12.0')
- >>> mpfr(dd).precision
- 53
- >>> G.sin(Decimal("123.456"))
- mpfr('-0.80393736857282394')
- >>> G.sqrt(Decimal("123.456"))
- mpfr('11.111075555498667')
- >>> G.is_nan(Decimal("123.456"))
- False
- >>> G.is_nan(Decimal("NaN"))
- True
- >>> G.is_nan(Decimal("Inf"))
- False
- >>> G.is_inf(Decimal("Inf"))
- True
- >>> G.is_inf(Decimal("-Inf"))
- True