Commit 14c91bb3 authored by Raymond Hettinger's avatar Raymond Hettinger

Eliminate unnecessary eval() in tests

parent 4d67f032
...@@ -687,17 +687,16 @@ class WichmannHill(Random): ...@@ -687,17 +687,16 @@ class WichmannHill(Random):
## -------------------- test program -------------------- ## -------------------- test program --------------------
def _test_generator(n, funccall): def _test_generator(n, func, args):
import time import time
print n, 'times', funccall print n, 'times', func.__name__
code = compile(funccall, funccall, 'eval')
total = 0.0 total = 0.0
sqsum = 0.0 sqsum = 0.0
smallest = 1e10 smallest = 1e10
largest = -1e10 largest = -1e10
t0 = time.time() t0 = time.time()
for i in range(n): for i in range(n):
x = eval(code) x = func(*args)
total += x total += x
sqsum = sqsum + x*x sqsum = sqsum + x*x
smallest = min(x, smallest) smallest = min(x, smallest)
...@@ -711,21 +710,21 @@ def _test_generator(n, funccall): ...@@ -711,21 +710,21 @@ def _test_generator(n, funccall):
def _test(N=2000): def _test(N=2000):
_test_generator(N, 'random()') _test_generator(N, random, ())
_test_generator(N, 'normalvariate(0.0, 1.0)') _test_generator(N, normalvariate, (0.0, 1.0))
_test_generator(N, 'lognormvariate(0.0, 1.0)') _test_generator(N, lognormvariate, (0.0, 1.0))
_test_generator(N, 'vonmisesvariate(0.0, 1.0)') _test_generator(N, vonmisesvariate, (0.0, 1.0))
_test_generator(N, 'gammavariate(0.01, 1.0)') _test_generator(N, gammavariate, (0.01, 1.0))
_test_generator(N, 'gammavariate(0.1, 1.0)') _test_generator(N, gammavariate, (0.1, 1.0))
_test_generator(N, 'gammavariate(0.1, 2.0)') _test_generator(N, gammavariate, (0.1, 2.0))
_test_generator(N, 'gammavariate(0.5, 1.0)') _test_generator(N, gammavariate, (0.5, 1.0))
_test_generator(N, 'gammavariate(0.9, 1.0)') _test_generator(N, gammavariate, (0.9, 1.0))
_test_generator(N, 'gammavariate(1.0, 1.0)') _test_generator(N, gammavariate, (1.0, 1.0))
_test_generator(N, 'gammavariate(2.0, 1.0)') _test_generator(N, gammavariate, (2.0, 1.0))
_test_generator(N, 'gammavariate(20.0, 1.0)') _test_generator(N, gammavariate, (20.0, 1.0))
_test_generator(N, 'gammavariate(200.0, 1.0)') _test_generator(N, gammavariate, (200.0, 1.0))
_test_generator(N, 'gauss(0.0, 1.0)') _test_generator(N, gauss, (0.0, 1.0))
_test_generator(N, 'betavariate(3.0, 3.0)') _test_generator(N, betavariate, (3.0, 3.0))
# Create one instance, seeded from current time, and export its methods # Create one instance, seeded from current time, and export its methods
# as module-level functions. The functions share state across all uses # as module-level functions. The functions share state across all uses
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment