Rename _get_percent() to _get_rate(), and return num2/num1 Rename getSDPercent() to getSDRate(), and return SD2/SD1 list
Negative number cannot be raised to a fractional power, so check if (sumSquareX - (n * (avgX ^ 2))) is smaller than 0 in _get_list_sd(). Little format fix. Signed-off-by: Amos Kong <[email protected]> --- client/tools/analyzer.py | 22 +++++++++++++--------- 1 files changed, 13 insertions(+), 9 deletions(-) diff --git a/client/tools/analyzer.py b/client/tools/analyzer.py index 28df97e..9fa83f8 100644 --- a/client/tools/analyzer.py +++ b/client/tools/analyzer.py @@ -24,14 +24,18 @@ class samples(): def getSD(self): return self._process(self.files_dict, self._get_list_sd) - def getSDPercent(self, sds_dict): - return self._process(sds_dict, self._get_percent) + def getSDRate(self, sds_dict): + return self._process(sds_dict, self._get_rate) - def _get_percent(self, data): - """ num2 / num1 * 100 """ + def _get_rate(self, data): + """ num2 / num1 """ result = "0.0" if len(data) == 2 and float(data[0]) != 0: - result = "%.1f" % (float(data[1]) / float(data[0]) * 100) + result = float(data[1]) / float(data[0]) + if result < 1: + result = "%.2f" % result + else: + result = "%.0f" % result return result def _get_augment_rate(self, data): @@ -55,9 +59,9 @@ class samples(): sum += float(i) sqsum += float(i) ** 2 avg = sum / n - if avg == 0 or n == 1: + if avg == 0 or n == 1 or sqsum - (n * avg**2) <= 0: return "0.0" - return "%.1f" % (((sqsum - (n * avg**2)) / (n - 1))**0.5) + return "%.3f" % (((sqsum - (n * avg**2)) / (n - 1))**0.5) def _get_list_avg(self, data): """ Compute the average of list members """ @@ -147,8 +151,8 @@ def analyze(sample_list1, sample_list2, log_file="./result.txt"): s2 = samples(sample_list2.split()) avg2 = s2.getAvg() sd2 = s2.getSD() - sd1 = s1.getSDPercent([avg1, sd1]) - sd2 = s1.getSDPercent([avg2, sd2]) + sd1 = s1.getSDRate([avg1, sd1]) + sd2 = s1.getSDRate([avg2, sd2]) display([avg1], sd1, log_file, summary="Avg1 SD Augment Rate", prefix="%SD ") display([avg2], sd2, log_file, summary="Avg2 SD Augment Rate", _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
