mirror of
https://github.com/python/cpython.git
synced 2024-11-24 10:24:35 +08:00
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:
parent
d8c8048f5e
commit
28b0e2a7f8
@ -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:
|
||||
|
Loading…
Reference in New Issue
Block a user