5 from popen2 import Popen3
9 r_score = R.compile(r'^Solved in ([\d]+) guesses$')
10 r_time = R.compile(r'^time:([\d.]+),([\d.]+)$')
12 proc = Popen3(['time', '-f', 'time:%U,%S'] + prog, capturestderr = True)
16 for l in proc.fromchild:
18 if m: guesses = int(m.group(1))
19 for l in proc.childerr:
22 u, s = map(float, m.groups([1, 2]))
27 def compare(h, c, scores):
28 code = [C.rand.range(c) for i in xrange(h)]
30 best, bestperf = [None, None], [-1, -1]
32 p = perf[i] = run(i + map(str, [h, c] + code))
34 if bestperf[j] == -1 or p[j] < bestperf[j]:
40 st += '%s:' % ['G', 'T'][i]
47 print '%s%s' % (st, code)
48 ind = (len(impl) + 3) * len(best)
50 ##print '%s%s: %s' % (' ' * ind, i, ' '.join(map(str, perf[i])))
54 for n, h, c in [(100, 4, 6),
59 print '************************** %d %d' % (h, c)
61 for i in impl: scores[i] = [0, 0]
64 print 'Summary, %d %d' % (h, c)
66 print ' %s: %s' % (i, ' '.join(['%s:%s' % (['G', 'T'][j], scores[i][j])