From fb24734f560c32d86767b9162986937d6ff55130 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Thu, 22 Jun 2017 18:16:50 +0200
Subject: [PATCH] fix: fuel type has no density; fix: time share per gear

---
 .../VectoCore/OutputData/IModalDataContainer.cs     | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
index 341fecb2cf..e509c204be 100644
--- a/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/IModalDataContainer.cs
@@ -369,7 +369,7 @@ namespace TUGraz.VectoCore.OutputData
 		public static SI FuelConsumptionFinalLiterPer100Kilometer(this IModalDataContainer data)
 		{
 			var fuelConsumptionFinal = data.FuelConsumptionFinal();
-			if (fuelConsumptionFinal == null) {
+			if (fuelConsumptionFinal == null || data.FuelData.FuelDensity == null) {
 				return null;
 			}
 
@@ -538,12 +538,15 @@ namespace TUGraz.VectoCore.OutputData
 				retVal[i] = 0.SI<Scalar>();
 			}
 
-			data.GetValues(x => {
-				var gear = x.Field<uint>((int)ModalResultField.Gear);
-				retVal[gear] += x.Field<Second>((int)ModalResultField.simulationInterval).Value();
-				return gear; // not used
+			var gearData = data.GetValues(x => new {
+				Gear = x.Field<uint>((int)ModalResultField.Gear),
+				dt = x.Field<Second>((int)ModalResultField.simulationInterval)
 			});
 
+			foreach (var entry in gearData) {
+				retVal[entry.Gear] += entry.dt.Value();
+			}
+
 			var duration = Duration(data).Value();
 			for (uint i = 0; i <= gearCount; i++) {
 				retVal[i] = 100 * retVal[i] / duration;
-- 
GitLab