Machines-- and Python --are a lot faster in relevant ways since this

test was written.  So boosted the number of "digits" this generates, and
also beefed up the "* / divmod" test to tickle numbers big enough to
trigger the Karatsuba algorithm.  It takes about 2 seconds now on my box.
This commit is contained in:
Tim Peters 2002-08-13 02:17:11 +00:00
parent d8c8048f5e
commit 28b0e2a7f8

View File

@ -6,10 +6,11 @@ from random import random, randint
SHIFT = 15
BASE = 2 ** SHIFT
MASK = BASE - 1
KARATSUBA_CUTOFF = 35 # from longobject.c
# Max number of base BASE digits to use in test cases. Doubling
# this will at least quadruple the runtime.
MAXDIGITS = 10
# this will more than double the runtime.
MAXDIGITS = 15
# build some special values
special = map(long, [0, 1, 2, BASE, BASE >> 1])
@ -90,7 +91,8 @@ def test_division_2(x, y):
def test_division(maxdigits=MAXDIGITS):
if verbose:
print "long / * % divmod"
digits = range(1, maxdigits+1)
digits = range(1, maxdigits+1) + range(KARATSUBA_CUTOFF,
KARATSUBA_CUTOFF + 15)
for lenx in digits:
x = getran(lenx)
for leny in digits: