summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/sortperf.py37
1 files changed, 31 insertions, 6 deletions
diff --git a/Lib/test/sortperf.py b/Lib/test/sortperf.py
index 5d9232a..d924c71 100644
--- a/Lib/test/sortperf.py
+++ b/Lib/test/sortperf.py
@@ -1,4 +1,9 @@
-"""Sort performance test."""
+"""Sort performance test.
+
+See main() for command line syntax.
+See tabulate() for output format.
+
+"""
import sys
import time
@@ -58,6 +63,20 @@ def doit(L):
fl()
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)
print fmt % ("i", "2**i", "*sort", "\\sort", "/sort", "~sort", "-sort")
for i in r:
@@ -78,16 +97,22 @@ def tabulate(r):
print
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
# default range (inclusive)
k1 = 15
k2 = 19
- # one argument: single point
- # two arguments: specify range
if sys.argv[1:]:
- k1 = string.atoi(sys.argv[1])
- k2 = k1
+ # one argument: single point
+ k1 = k2 = string.atoi(sys.argv[1])
if sys.argv[2:]:
+ # two arguments: specify range
k2 = string.atoi(sys.argv[2])
if sys.argv[3:]:
# derive random seed from remaining arguments
@@ -102,7 +127,7 @@ def main():
h = h>>8
z = (z^h^d) & 255
whrandom.seed(x, y, z)
- r = range(k1, k2+1)
+ r = range(k1, k2+1) # include the end point
tabulate(r)
if __name__ == '__main__':