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