Commit 03e35c54 authored by Guido van Rossum's avatar Guido van Rossum

Add a few doc strings.

parent ea176b66
"""Sort performance test.""" """Sort performance test.
See main() for command line syntax.
See tabulate() for output format.
"""
import sys import sys
import time import time
...@@ -58,6 +63,20 @@ def doit(L): ...@@ -58,6 +63,20 @@ def doit(L):
fl() fl()
def tabulate(r): def tabulate(r):
"""Tabulate sort speed for lists of various sizes.
The sizes are 2**i for i in r (the argument, a list).
The output displays i, 2**i, and the time to sort arrays of 2**i
floating point numbers with the following properties:
*sort: random data
\sort: descending data
/sort: ascending data
~sort: many duplicates
-sort: all equal
"""
fmt = ("%2s %6s" + " %6s"*5) fmt = ("%2s %6s" + " %6s"*5)
print fmt % ("i", "2**i", "*sort", "\\sort", "/sort", "~sort", "-sort") print fmt % ("i", "2**i", "*sort", "\\sort", "/sort", "~sort", "-sort")
for i in r: for i in r:
...@@ -78,16 +97,22 @@ def tabulate(r): ...@@ -78,16 +97,22 @@ def tabulate(r):
print print
def main(): def main():
"""Main program when invoked as a script.
One argument: tabulate a single row.
Two arguments: tabulate a range (inclusive).
Extra arguments are used to seed the random generator.
"""
import string import string
# default range (inclusive) # default range (inclusive)
k1 = 15 k1 = 15
k2 = 19 k2 = 19
# one argument: single point
# two arguments: specify range
if sys.argv[1:]: if sys.argv[1:]:
k1 = string.atoi(sys.argv[1]) # one argument: single point
k2 = k1 k1 = k2 = string.atoi(sys.argv[1])
if sys.argv[2:]: if sys.argv[2:]:
# two arguments: specify range
k2 = string.atoi(sys.argv[2]) k2 = string.atoi(sys.argv[2])
if sys.argv[3:]: if sys.argv[3:]:
# derive random seed from remaining arguments # derive random seed from remaining arguments
...@@ -102,7 +127,7 @@ def main(): ...@@ -102,7 +127,7 @@ def main():
h = h>>8 h = h>>8
z = (z^h^d) & 255 z = (z^h^d) & 255
whrandom.seed(x, y, z) whrandom.seed(x, y, z)
r = range(k1, k2+1) r = range(k1, k2+1) # include the end point
tabulate(r) tabulate(r)
if __name__ == '__main__': if __name__ == '__main__':
......
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