]> granicus.if.org Git - python/commitdiff
Make the decimal bench file run under Python 2.7.
authorBrett Cannon <brett@python.org>
Tue, 25 Sep 2012 14:23:47 +0000 (10:23 -0400)
committerBrett Cannon <brett@python.org>
Tue, 25 Sep 2012 14:23:47 +0000 (10:23 -0400)
Modules/_decimal/tests/bench.py

index 01f851c8195fc9db6904b919ab51ef1b1c64ff99..ce864b4f114c769ebff014b4fb85065f76952009 100644 (file)
 
 import time
 from math import log, ceil
-from test.support import import_fresh_module
+try:
+  from test.support import import_fresh_module
+except ImportError:
+  from test.test_support import import_fresh_module
 
 C = import_fresh_module('decimal', fresh=['_decimal'])
 P = import_fresh_module('decimal', blocked=['_decimal'])
@@ -69,9 +72,13 @@ print("# ======================================================================\
 
 for prec in [9, 19]:
     print("\nPrecision: %d decimal digits\n" % prec)
-    for func in [pi_float, pi_cdecimal, pi_decimal]:
+    to_benchmark = [pi_float, pi_decimal]
+    if C is not None:
+      to_benchmark.append(pi_cdecimal)
+    for func in to_benchmark:
         start = time.time()
-        C.getcontext().prec = prec
+        if C is not None:
+          C.getcontext().prec = prec
         P.getcontext().prec = prec
         for i in range(10000):
             x = func()
@@ -84,25 +91,27 @@ print("\n# =====================================================================
 print("#                               Factorial")
 print("# ======================================================================\n")
 
-c = C.getcontext()
-c.prec = C.MAX_PREC
-c.Emax = C.MAX_EMAX
-c.Emin = C.MIN_EMIN
+if C is not None:
+  c = C.getcontext()
+  c.prec = C.MAX_PREC
+  c.Emax = C.MAX_EMAX
+  c.Emin = C.MIN_EMIN
 
 for n in [100000, 1000000]:
 
     print("n = %d\n" % n)
 
-    # C version of decimal
-    start_calc = time.time()
-    x = factorial(C.Decimal(n), 0)
-    end_calc = time.time()
-    start_conv = time.time()
-    sx = str(x)
-    end_conv = time.time()
-    print("cdecimal:")
-    print("calculation time: %fs" % (end_calc-start_calc))
-    print("conversion time: %fs\n" % (end_conv-start_conv))
+    if C is not None:
+      # C version of decimal
+      start_calc = time.time()
+      x = factorial(C.Decimal(n), 0)
+      end_calc = time.time()
+      start_conv = time.time()
+      sx = str(x)
+      end_conv = time.time()
+      print("cdecimal:")
+      print("calculation time: %fs" % (end_calc-start_calc))
+      print("conversion time: %fs\n" % (end_conv-start_conv))
 
     # Python integers
     start_calc = time.time()
@@ -116,4 +125,5 @@ for n in [100000, 1000000]:
     print("calculation time: %fs" % (end_calc-start_calc))
     print("conversion time: %fs\n\n" % (end_conv-start_conv))
 
-    assert(sx == sy)
+    if C is not None:
+      assert(sx == sy)