summaryrefslogtreecommitdiffstats
path: root/docker/storperf-master/storperf/utilities/math.py
diff options
context:
space:
mode:
authormbeierl <mark.beierl@dell.com>2018-08-02 16:25:28 -0400
committermbeierl <mark.beierl@dell.com>2018-08-02 16:25:28 -0400
commit5051297e7294406453ac4ff2e14f35762a77b249 (patch)
tree900a8605a3910faa9d1253a76ee5992f96cf5fb5 /docker/storperf-master/storperf/utilities/math.py
parent21d19004ea06187488fc6edef23db9a9c1826478 (diff)
Calculate Data Seriesopnfv-7.0.stable.RC2
Adds the min, max and actual slope values to the final report metrics so that end users do not have to calculate these values. Change-Id: Ic98ec5cbfcdf7447d2bffc46e9bd05e087c72965 JIRA: STORPERF-257 Signed-off-by: mbeierl <mark.beierl@dell.com>
Diffstat (limited to 'docker/storperf-master/storperf/utilities/math.py')
-rw-r--r--docker/storperf-master/storperf/utilities/math.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/docker/storperf-master/storperf/utilities/math.py b/docker/storperf-master/storperf/utilities/math.py
index 8e04134..2e78c9d 100644
--- a/docker/storperf-master/storperf/utilities/math.py
+++ b/docker/storperf-master/storperf/utilities/math.py
@@ -8,6 +8,9 @@
##############################################################################
import copy
+RANGE_DEVIATION = 0.20
+SLOPE_DEVIATION = 0.10
+
def slope(data_series):
"""
@@ -114,3 +117,58 @@ def average(data_series):
average = data_sum / float(m)
return average
+
+
+def slope_series(data_series):
+ """
+ This function returns an adjusted series based on the average
+ for the supplied series and the slope of the series.
+ """
+
+ new_series = []
+ average_series = []
+ for l in data_series:
+ average_series.append(l[1])
+
+ avg = average(average_series)
+ slp = slope(data_series)
+
+ multiplier = float(len(data_series) + 1) / 2.0 - len(data_series)
+ for index, _ in data_series:
+ new_value = avg + (slp * multiplier)
+ new_series.append([index, new_value])
+ multiplier += 1
+
+ return new_series
+
+
+def min_series(data_series):
+ """
+ This function returns an copy of the series with only the
+ minimum allowed deviation as its values
+ """
+
+ new_series = []
+ avg = average(data_series)
+ low = avg - (avg * RANGE_DEVIATION)
+
+ for _ in data_series:
+ new_series.append(low)
+
+ return new_series
+
+
+def max_series(data_series):
+ """
+ This function returns an copy of the series with only the
+ maximum allowed deviation as its values
+ """
+
+ new_series = []
+ avg = average(data_series)
+ high = avg + (avg * RANGE_DEVIATION)
+
+ for _ in data_series:
+ new_series.append(high)
+
+ return new_series