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
])