From d66acc382d258a7517c42b3de5e7cffd39e7cbb2 Mon Sep 17 00:00:00 2001
From: Britta Heymann <britta_hey@web.de>
Date: Thu, 5 Oct 2017 12:49:05 +0200
Subject: [PATCH] Additional refactoring for delayDistributionAnalysis.py

---
 .../delayDistributionAnalysis.py              | 26 ++++++++++---------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/toolkit/reportSummary/delayDistributionAnalysis.py b/toolkit/reportSummary/delayDistributionAnalysis.py
index df68989a..6e53f91a 100644
--- a/toolkit/reportSummary/delayDistributionAnalysis.py
+++ b/toolkit/reportSummary/delayDistributionAnalysis.py
@@ -51,7 +51,7 @@ def parseDelayAnalysis(fileName, messageType, messagePrio):
     # Find data both for bar chart and cumulative chart
     delayClasses = []
     percentageDelivered = []
-    cumulativePercentages = {}
+    cumulativePercentages = []
     sumOfPercentages = 0
     for line in analysis:
         match = re.match(".*<\s*(\d+):\s*(\d+.\d+)%", line)
@@ -62,7 +62,7 @@ def parseDelayAnalysis(fileName, messageType, messagePrio):
         delayClasses.append(maxDelay)
         percentageDelivered.append(percentage)
         sumOfPercentages += percentage
-        cumulativePercentages[maxDelay] = sumOfPercentages
+        cumulativePercentages.append(sumOfPercentages)
 
     return delayClasses, percentageDelivered, cumulativePercentages
 
@@ -77,7 +77,7 @@ def plotDelayDistribution(title, delayClasses, percentageDelivered):
 
 def plotCumulativeDelay(delayClasses, cumulativePercentages):
     """Plots a cumulative delay chart."""
-    plt.plot(delayClasses, [cumulativePercentages[delayClass] for delayClass in delayClasses])
+    plt.plot(delayClasses, cumulativePercentages)
     plt.xlabel('Delay in minutes')
     plt.ylabel('Cumulative percentage')
     plt.grid(True)
@@ -85,25 +85,27 @@ def plotCumulativeDelay(delayClasses, cumulativePercentages):
     axes.set_xlim(xmin = 0)
     axes.set_ylim(ymin = 0)
 
-# Main function of the script. See script description at the top of the file for further information.
-def main(analysisFileName, messageType, messagePrio, graphicFileName):
-    delayClasses, percentageDelivered, cumulativePercentages = parseDelayAnalysis(analysisFileName, messageType, messagePrio)
-
+def createDelayGraphicInFile(delayClasses, percentageDelivered, cumulativePercentages, title, fileName):
     # Plot bar chart
     plt.subplot(2,1,1)
-    plotDelayDistribution(
-        title='Delay distribution of delivered {} messages\nPriority {}'.format(messageType, messagePrio),
-        delayClasses=delayClasses,
-        percentageDelivered=percentageDelivered)
+    plotDelayDistribution(title, delayClasses, percentageDelivered)
 
     # Directly below, plot cumulative chart
     plt.subplot(2,1,2)
     plotCumulativeDelay(delayClasses, cumulativePercentages)
 
     # Save to file
-    plt.savefig(graphicFileName, dpi = 300)
+    plt.savefig(fileName, dpi = 300)
     plt.close()
 
+# Main function of the script. See script description at the top of the file for further information.
+def main(analysisFileName, messageType, messagePrio, graphicFileName):
+    delayClasses, percentageDelivered, cumulativePercentages = parseDelayAnalysis(analysisFileName, messageType, messagePrio)
+    createDelayGraphicInFile(
+        delayClasses, percentageDelivered, cumulativePercentages,
+        title='Delay distribution of delivered {} messages\nPriority {}'.format(messageType, messagePrio),
+        fileName=graphicFileName)
+
 # Make sure script can be called from command line.
 if __name__ == "__main__":
     main(sys.argv[1], sys.argv[2], sys.argv[3], sys.argv[4])
\ No newline at end of file
-- 
GitLab