get_standard_deviation() is to get Standard Deviation, and
param_to_tuple_nolength() allow do not pass lengh when use
param_to_tuple().
Signed-off-by: Luyao Huang <lhuang(a)redhat.com>
---
utils/utils.py | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/utils/utils.py b/utils/utils.py
index c3e46f6..954b2bf 100644
--- a/utils/utils.py
+++ b/utils/utils.py
@@ -31,6 +31,7 @@ import string
import subprocess
import hashlib
import libvirt
+import math
from xml.dom import minidom
from urlparse import urlparse
@@ -896,3 +897,30 @@ def validate_remote_blk_type(hostname, username, password,
else:
logger.info("lspci and lsmod return nothing")
return 1
+
+def get_standard_deviation(cb1, cb2, opaque1, opaque2, number = 1000):
+ """ pass two callback functions and opaque return Standard Deviation,
+ this function will be useful when need equal some quick change
+ value (like memory, cputime), default loop times are 1000,
+ and notice callback functions cb1 and cb2 should allways success
+ """
+ D = 0
+ for i in range(number):
+ a = cb1(opaque1)
+ b = cb2(opaque2)
+ D += (int(a) - int(b))**2
+ return math.sqrt(D/number)
+
+def param_to_tuple_nolength(paramlist):
+ """paramlist contains numbers which can be divided by '-',
'^' and
+ ',', return tuple only have True or False value
+ """
+ d = []
+ a = paramlist.split(',')
+ for i in range(len(a)):
+ if a[i].find('^') >= 0:
+ continue
+ d += a[i].split('-')
+ lengh = max(d)
+
+ return param_to_tuple(paramlist, int(lengh) + 1)
--
1.8.3.1