]> granicus.if.org Git - python/commitdiff
Machines-- and Python --are a lot faster in relevant ways since this
authorTim Peters <tim.peters@gmail.com>
Tue, 13 Aug 2002 02:17:11 +0000 (02:17 +0000)
committerTim Peters <tim.peters@gmail.com>
Tue, 13 Aug 2002 02:17:11 +0000 (02:17 +0000)
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.

Lib/test/test_long.py

index 78224128aa99de08b03c1db212ac8e457906584c..4602bfb0b18bea109d4fc73e9a041bfa4bc179d2 100644 (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: