Further refactor the main harness. Print average time for each solution.
This commit is contained in:
@ -43,10 +43,12 @@ def runTrial(answers):
|
|||||||
else:
|
else:
|
||||||
answer = None
|
answer = None
|
||||||
finalTemperature = temperature.value
|
finalTemperature = temperature.value
|
||||||
print 'Answered %s (time %d, final temperature %.1f)' % (answer, coderack.codeletsRun, finalTemperature)
|
finalTime = coderack.codeletsRun
|
||||||
answers[answer] = answers.get(answer, {'count': 0, 'tempsum': 0})
|
print 'Answered %s (time %d, final temperature %.1f)' % (answer, finalTime, finalTemperature)
|
||||||
|
answers[answer] = answers.get(answer, {'count': 0, 'tempsum': 0, 'timesum': 0})
|
||||||
answers[answer]['count'] += 1
|
answers[answer]['count'] += 1
|
||||||
answers[answer]['tempsum'] += finalTemperature
|
answers[answer]['tempsum'] += finalTemperature
|
||||||
|
answers[answer]['timesum'] += finalTime
|
||||||
|
|
||||||
|
|
||||||
def run(initial, modified, target, iterations):
|
def run(initial, modified, target, iterations):
|
||||||
@ -55,7 +57,6 @@ def run(initial, modified, target, iterations):
|
|||||||
for i in xrange(iterations):
|
for i in xrange(iterations):
|
||||||
runTrial(answers)
|
runTrial(answers)
|
||||||
for answer, d in answers.iteritems():
|
for answer, d in answers.iteritems():
|
||||||
d['avgtemp'] = d['tempsum'] / d['count']
|
d['avgtemp'] = d.pop('tempsum') / d['count']
|
||||||
d.pop('tempsum')
|
d['avgtime'] = d.pop('timesum') / d['count']
|
||||||
for answer, d in sorted(answers.iteritems(), key=lambda kv: kv[1]['avgtemp']):
|
return answers
|
||||||
print '%s: %d (avg temp %.1f)' % (answer, d['count'], d['avgtemp'])
|
|
||||||
|
|||||||
@ -18,7 +18,9 @@ def main(program, args):
|
|||||||
else:
|
else:
|
||||||
initial, modified, target = args
|
initial, modified, target = args
|
||||||
iterations = 1
|
iterations = 1
|
||||||
copycat.run(initial, modified, target, iterations)
|
answers = copycat.run(initial, modified, target, iterations)
|
||||||
|
for answer, d in sorted(answers.iteritems(), key=lambda kv: kv[1]['avgtemp']):
|
||||||
|
print '%s: %d (avg time %.1f, avg temp %.1f)' % (answer, d['count'], d['avgtime'], d['avgtemp'])
|
||||||
return 0
|
return 0
|
||||||
except ValueError:
|
except ValueError:
|
||||||
print >> sys.stderr, 'Usage: %s initial modified target [iterations]' % program
|
print >> sys.stderr, 'Usage: %s initial modified target [iterations]' % program
|
||||||
|
|||||||
Reference in New Issue
Block a user