Mercurial > hg > orthanc-tests
view PerfsDb/TestResult.py @ 166:7d39adee9f88
don't repeat statistics test that is lengthy
author | am@osimis.io |
---|---|
date | Fri, 31 Aug 2018 10:31:15 +0200 |
parents | f1a75985caa8 |
children | 85a2074f8794 |
line wrap: on
line source
import time import statistics from orthancRestApi import OrthancClient class TestResult: def __init__(self, name: str): self.minTimeInMs = 0 self.maxTimeInMs = 0 self.averageTimeInMs = 0 self.name = name self._durations = [] def add(self, durationInMs: float): self._durations.append(durationInMs) def compute(self): mean = statistics.mean(self._durations) stdDev = statistics.stdev(self._durations) # remove outliers cleanedDurations = [x for x in self._durations if (x > mean - 2*stdDev) and (x < mean + 2*stdDev)] self.averageTimeInMs = statistics.mean(cleanedDurations) self.minTimeInMs = min(cleanedDurations) self.maxTimeInMs = max(cleanedDurations) def __str__(self): return "{name:<40}: {avg:>8.2f} ms {min:>8.2f} ms {max:>8.2f} ms".format( name=self.name, avg = self.averageTimeInMs, min=self.minTimeInMs, max=self.maxTimeInMs )