summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2003-02-04 05:47:30 (GMT)
committerRaymond Hettinger <python@rcn.com>2003-02-04 05:47:30 (GMT)
commit105b084b59208cd71759111d51861b50d1573ac4 (patch)
tree0c13b413a36b2107347b9c3c5b97ba5f0d30eae4
parentfa05ce3c1d03fe9923fc962204d241b9cd3384d7 (diff)
downloadcpython-105b084b59208cd71759111d51861b50d1573ac4.zip
cpython-105b084b59208cd71759111d51861b50d1573ac4.tar.gz
cpython-105b084b59208cd71759111d51861b50d1573ac4.tar.bz2
Add refcount test.
-rw-r--r--Lib/test/test_random.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/Lib/test/test_random.py b/Lib/test/test_random.py
index cc9b44e..9a1636a 100644
--- a/Lib/test/test_random.py
+++ b/Lib/test/test_random.py
@@ -74,7 +74,7 @@ class TestBasicOps(unittest.TestCase):
pop = range(n)
trials = 10000 # large num prevents false negatives without slowing normal case
def factorial(n):
- return n==0 and 1 or n * factorial(n-1)
+ return reduce(int.__mul__, xrange(1, n), 1)
for k in xrange(n):
expected = factorial(n) / factorial(n-k)
perms = {}
@@ -271,7 +271,7 @@ class TestModule(unittest.TestCase):
# tests validity but not completeness of the __all__ list
self.failUnless(Set(random.__all__) <= Set(dir(random)))
-def test_main():
+def test_main(verbose=None):
suite = unittest.TestSuite()
for testclass in (WichmannHill_TestBasicOps,
MersenneTwister_TestBasicOps,
@@ -280,5 +280,14 @@ def test_main():
suite.addTest(unittest.makeSuite(testclass))
test_support.run_suite(suite)
+ # verify reference counting
+ import sys
+ if verbose and hasattr(sys, "gettotalrefcount"):
+ counts = []
+ for i in xrange(5):
+ test_support.run_suite(suite)
+ counts.append(sys.gettotalrefcount()-i)
+ print counts
+
if __name__ == "__main__":
- test_main()
+ test_main(verbose=True)