diff options
Diffstat (limited to 'Modules/_decimal/tests/bignum.py')
-rw-r--r-- | Modules/_decimal/tests/bignum.py | 42 |
1 files changed, 0 insertions, 42 deletions
diff --git a/Modules/_decimal/tests/bignum.py b/Modules/_decimal/tests/bignum.py deleted file mode 100644 index a67e161..0000000 --- a/Modules/_decimal/tests/bignum.py +++ /dev/null @@ -1,42 +0,0 @@ -# -# These tests require gmpy and test the limits of the 32-bit build. The -# limits of the 64-bit build are so large that they cannot be tested -# on accessible hardware. -# - -import sys -from decimal import * -from gmpy import mpz - - -_PyHASH_MODULUS = sys.hash_info.modulus -# hash values to use for positive and negative infinities, and nans -_PyHASH_INF = sys.hash_info.inf -_PyHASH_NAN = sys.hash_info.nan - -# _PyHASH_10INV is the inverse of 10 modulo the prime _PyHASH_MODULUS -_PyHASH_10INV = pow(10, _PyHASH_MODULUS - 2, _PyHASH_MODULUS) - -def xhash(coeff, exp): - sign = 1 - if coeff < 0: - sign = -1 - coeff = -coeff - if exp >= 0: - exp_hash = pow(10, exp, _PyHASH_MODULUS) - else: - exp_hash = pow(_PyHASH_10INV, -exp, _PyHASH_MODULUS) - hash_ = coeff * exp_hash % _PyHASH_MODULUS - ans = hash_ if sign == 1 else -hash_ - return -2 if ans == -1 else ans - - -x = mpz(10) ** 425000000 - 1 -coeff = int(x) - -d = Decimal('9' * 425000000 + 'e-849999999') - -h1 = xhash(coeff, -849999999) -h2 = hash(d) - -assert h2 == h1 |