From 20811e753bb2e1f24558e66657e62291be44268e Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <quaritsch@ivt.tugraz.at>
Date: Mon, 19 Dec 2022 17:25:03 +0100
Subject: [PATCH] result writer: write volume-oriented results only if cargo
 volume is greater than 0

---
 .../DeclarationReports/Common/CO2Writer.cs    |  7 +++++--
 .../Common/FuelConsumptionWriter.cs           | 19 +++++++++++++------
 2 files changed, 18 insertions(+), 8 deletions(-)

diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/CO2Writer.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/CO2Writer.cs
index 48c69374d7..5d485ec3a3 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/CO2Writer.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/CO2Writer.cs
@@ -42,11 +42,14 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
 		protected override IList<ConvertedSI> GetCO2ResultEntries(Kilogram CO2Total, Meter distance, Kilogram payload,
 			CubicMeter volume, double? passengers)
 		{
-			return new[] {
+			var retVal = new List<ConvertedSI>() {
 				(CO2Total / distance).ConvertToGrammPerKiloMeter(),
 				(CO2Total / distance / payload).ConvertToGrammPerTonKilometer(),
-				(CO2Total / distance / volume).ConvertToGrammPerCubicMeterKiloMeter(),
 			};
+			if (volume.IsGreater(0)) {
+				retVal.Add((CO2Total / distance / volume).ConvertToGrammPerCubicMeterKiloMeter());
+			}
+			return retVal;
 		}
 
 	}
diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs
index 18a02b179f..115f61cd86 100644
--- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs
+++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/Common/FuelConsumptionWriter.cs
@@ -52,20 +52,27 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
         {
             var retVal = new List<ConvertedSI> {
                 (fc / distance).ConvertToGrammPerKiloMeter(),
-                (fc / distance /payload).ConvertToGrammPerTonKilometer(),
-                (fc / distance / volume).ConvertToGrammPerCubicMeterKiloMeter(),
+                (fc / distance /payload).ConvertToGrammPerTonKilometer()};
+            if (volume.IsGreater(0)) {
+				retVal.Add((fc / distance / volume).ConvertToGrammPerCubicMeterKiloMeter());
+			}
 
+			retVal.AddRange(new [] {
                 (fc * fuel.LowerHeatingValueVecto / distance).ConvertToMegaJoulePerKilometer(),
                 (fc * fuel.LowerHeatingValueVecto / distance / payload).ConvertToMegaJoulePerTonKiloMeter(),
-                (fc * fuel.LowerHeatingValueVecto / distance / volume).ConvertToMegaJoulePerCubicMeterKiloMeter(),
-            };
+			});
+			if (volume.IsGreater(0)) {
+                retVal.Add((fc * fuel.LowerHeatingValueVecto / distance / volume).ConvertToMegaJoulePerCubicMeterKiloMeter());
+			}
 
             if (fuel.FuelDensity != null) {
                 retVal.AddRange(new[] {
                     (fc / fuel.FuelDensity / distance).ConvertToLiterPer100KiloMeter(),
                     (fc / fuel.FuelDensity / distance / payload).ConvertToLiterPerTonKiloMeter(),
-                    (fc / fuel.FuelDensity / distance /volume).ConvertToLiterPerCubicMeterKiloMeter(),
-                });
+				});
+				if (volume.IsGreater(0)) {
+					retVal.Add((fc / fuel.FuelDensity / distance / volume).ConvertToLiterPerCubicMeterKiloMeter());
+				}
             }
 
             return retVal;
-- 
GitLab