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

Reply via email to