annotate Lib/test/pystone.py @ 4566:6403c94de50d legacy-trunk

Added safeguard against failure in __del__.
author Guido van Rossum <guido@python.org>
date Wed, 27 Nov 1996 19:39:58 +0000
parents b368be7b062a
children 73758db2f464
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2613
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 #! /usr/local/bin/python
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
3 """
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 "PYSTONE" Benchmark Program
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
5
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
6 Version: Python/1.0 (corresponds to C/1.1)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 Author: Reinhold P. Weicker, CACM Vol 27, No 10, 10/84 pg. 1013.
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
9
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 Translated from ADA to C by Rick Richardson.
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 Every method to preserve ADA-likeness has been used,
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 at the expense of C-ness.
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
13
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 Translated from C to Python by Guido van Rossum.
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 """
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
16
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 LOOPS = 1000
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
18
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 from time import clock
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
20
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 __version__ = "1.0"
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
22
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 [Ident1, Ident2, Ident3, Ident4, Ident5] = range(1, 6)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
24
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 class Record:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 def __init__(self, PtrComp = None, Discr = 0, EnumComp = 0,
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 IntComp = 0, StringComp = 0):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 self.PtrComp = PtrComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 self.Discr = Discr
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 self.EnumComp = EnumComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
32 self.IntComp = IntComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 self.StringComp = StringComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
34
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 def copy(self):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 return Record(self.PtrComp, self.Discr, self.EnumComp,
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 self.IntComp, self.StringComp)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
38
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 TRUE = 1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 FALSE = 0
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
41
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 def main():
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
43 Proc0()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
44
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
45 IntGlob = 0
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
46 BoolGlob = FALSE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 Char1Glob = '\0'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 Char2Glob = '\0'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 Array1Glob = [0]*51
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 Array2Glob = map(lambda x: x[:], [Array1Glob]*51)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 PtrGlb = None
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 PtrGlbNext = None
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
53
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 def Proc0():
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
55 global IntGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
56 global BoolGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
57 global Char1Glob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
58 global Char2Glob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 global Array1Glob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 global Array2Glob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 global PtrGlb
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 global PtrGlbNext
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
63
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 starttime = clock()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 for i in range(LOOPS):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 pass
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 nulltime = clock() - starttime
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
68
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
69 PtrGlbNext = Record()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
70 PtrGlb = Record()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 PtrGlb.PtrComp = PtrGlbNext
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
72 PtrGlb.Discr = Ident1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 PtrGlb.EnumComp = Ident3
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 PtrGlb.IntComp = 40
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
75 PtrGlb.StringComp = "DHRYSTONE PROGRAM, SOME STRING"
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
76 String1Loc = "DHRYSTONE PROGRAM, 1'ST STRING"
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
77 Array2Glob[8][7] = 10
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
78
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
79 starttime = clock()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
80
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
81 for i in range(LOOPS):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
82 Proc5()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
83 Proc4()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
84 IntLoc1 = 2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
85 IntLoc2 = 3
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
86 String2Loc = "DHRYSTONE PROGRAM, 2'ND STRING"
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
87 EnumLoc = Ident2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
88 BoolGlob = not Func2(String1Loc, String2Loc)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
89 while IntLoc1 < IntLoc2:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
90 IntLoc3 = 5 * IntLoc1 - IntLoc2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
91 IntLoc3 = Proc7(IntLoc1, IntLoc2)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
92 IntLoc1 = IntLoc1 + 1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
93 Proc8(Array1Glob, Array2Glob, IntLoc1, IntLoc3)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
94 PtrGlb = Proc1(PtrGlb)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
95 CharIndex = 'A'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
96 while CharIndex <= Char2Glob:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
97 if EnumLoc == Func1(CharIndex, 'C'):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
98 EnumLoc = Proc6(Ident1)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
99 CharIndex = chr(ord(CharIndex)+1)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
100 IntLoc3 = IntLoc2 * IntLoc1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
101 IntLoc2 = IntLoc3 / IntLoc1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
102 IntLoc2 = 7 * (IntLoc3 - IntLoc2) - IntLoc1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
103 IntLoc1 = Proc2(IntLoc1)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
104
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
105 benchtime = clock() - starttime - nulltime
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
106 print "Pystone(%s) time for %d passes = %g" % \
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
107 (__version__, LOOPS, benchtime)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
108 print "This machine benchmarks at %g pystones/second" % \
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
109 (LOOPS/benchtime)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
110
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
111 def Proc1(PtrParIn):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
112 PtrParIn.PtrComp = NextRecord = PtrGlb.copy()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
113 PtrParIn.IntComp = 5
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
114 NextRecord.IntComp = PtrParIn.IntComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
115 NextRecord.PtrComp = PtrParIn.PtrComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
116 NextRecord.PtrComp = Proc3(NextRecord.PtrComp)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
117 if NextRecord.Discr == Ident1:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
118 NextRecord.IntComp = 6
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
119 NextRecord.EnumComp = Proc6(PtrParIn.EnumComp)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
120 NextRecord.PtrComp = PtrGlb.PtrComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 NextRecord.IntComp = Proc7(NextRecord.IntComp, 10)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 else:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
123 PtrParIn = NextRecord.copy()
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 return PtrParIn
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
125
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 def Proc2(IntParIO):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
127 IntLoc = IntParIO + 10
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 while 1:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
129 if Char1Glob == 'A':
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 IntLoc = IntLoc - 1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
131 IntParIO = IntLoc - IntGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
132 EnumLoc = Ident1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 if EnumLoc == Ident1:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
134 break
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
135 return IntParIO
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
136
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
137 def Proc3(PtrParOut):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
138 global IntGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
139
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
140 if PtrGlb != None:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
141 PtrParOut = PtrGlb.PtrComp
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
142 else:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
143 IntGlob = 100
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
144 PtrGlb.IntComp = Proc7(10, IntGlob)
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
145 return PtrParOut
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
146
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
147 def Proc4():
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
148 global Char2Glob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
149
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
150 BoolLoc = Char1Glob == 'A'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
151 BoolLoc = BoolLoc or BoolGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
152 Char2Glob = 'B'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
153
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
154 def Proc5():
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
155 global Char1Glob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
156 global BoolGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
157
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
158 Char1Glob = 'A'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
159 BoolGlob = FALSE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
160
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
161 def Proc6(EnumParIn):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
162 EnumParOut = EnumParIn
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
163 if not Func3(EnumParIn):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
164 EnumParOut = Ident4
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 if EnumParIn == Ident1:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
166 EnumParOut = Ident1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
167 elif EnumParIn == Ident2:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
168 if IntGlob > 100:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
169 EnumParOut = Ident1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
170 else:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 EnumParOut = Ident4
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
172 elif EnumParIn == Ident3:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
173 EnumParOut = Ident2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
174 elif EnumParIn == Ident4:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
175 pass
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
176 elif EnumParIn == Ident5:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
177 EnumParOut = Ident3
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
178 return EnumParOut
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
179
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
180 def Proc7(IntParI1, IntParI2):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
181 IntLoc = IntParI1 + 2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
182 IntParOut = IntParI2 + IntLoc
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
183 return IntParOut
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
184
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
185 def Proc8(Array1Par, Array2Par, IntParI1, IntParI2):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
186 global IntGlob
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
187
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
188 IntLoc = IntParI1 + 5
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
189 Array1Par[IntLoc] = IntParI2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
190 Array1Par[IntLoc+1] = Array1Par[IntLoc]
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
191 Array1Par[IntLoc+30] = IntLoc
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
192 for IntIndex in range(IntLoc, IntLoc+2):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
193 Array2Par[IntLoc][IntIndex] = IntLoc
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
194 Array2Par[IntLoc][IntLoc-1] = Array2Par[IntLoc][IntLoc-1] + 1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
195 Array2Par[IntLoc+20][IntLoc] = Array1Par[IntLoc]
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
196 IntGlob = 5
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
197
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
198 def Func1(CharPar1, CharPar2):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
199 CharLoc1 = CharPar1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
200 CharLoc2 = CharLoc1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
201 if CharLoc2 != CharPar2:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
202 return Ident1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
203 else:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
204 return Ident2
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
205
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
206 def Func2(StrParI1, StrParI2):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
207 IntLoc = 1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
208 while IntLoc <= 1:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
209 if Func1(StrParI1[IntLoc], StrParI2[IntLoc+1]) == Ident1:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
210 CharLoc = 'A'
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
211 IntLoc = IntLoc + 1
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
212 if CharLoc >= 'W' and CharLoc <= 'Z':
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
213 IntLoc = 7
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
214 if CharLoc == 'X':
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
215 return TRUE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
216 else:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
217 if StrParI1 > StrParI2:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
218 IntLoc = IntLoc + 7
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
219 return TRUE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
220 else:
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
221 return FALSE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
222
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
223 def Func3(EnumParIn):
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
224 EnumLoc = EnumParIn
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
225 if EnumLoc == Ident3: return TRUE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
226 return FALSE
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
227
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
228 if __name__ == '__main__':
b368be7b062a added "pystone" benchmark
Guido van Rossum <guido@python.org>
parents:
diff changeset
229 main()