From e72bc67928bc648a39d8a0ca7109cfdb44af64e3 Mon Sep 17 00:00:00 2001
From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at>
Date: Mon, 22 Mar 2021 23:40:42 +0100
Subject: [PATCH] make number of passengers properties nullable

---
 VECTO/Input Files/Engine.vb                   |  4 +--
 VECTO/Input Files/Gearbox.vb                  |  4 +--
 VECTO/Input Files/MockVehicleInputData.vb     |  4 +--
 VECTO/Input Files/Vehicle.vb                  |  4 +--
 .../InputData/DeclarationInputData.cs         |  4 +--
 .../FileIO/JSON/JSONComponentInputData.cs     |  4 +--
 .../InputData/FileIO/JSON/JSONVehicleData.cs  |  4 +--
 .../XMLDeclarationVehicleDataProvider.cs      | 28 +++++++++----------
 .../XMLEngineeringVehicleDataProvider.cs      |  4 +--
 ...larationDataAdapterCompletedBusSpecific.cs |  8 +++---
 .../DeclarationDataAdapterSingleBus.cs        |  2 +-
 .../Declaration/CompletedBusSegments.cs       |  8 +++---
 .../Utils/MockDeclarationVehicleInputData.cs  |  8 +++---
 .../XML/XMLMultistageBusDataTest.cs           |  4 +--
 .../XML/XMLMultistageBusInputDataTest.cs      |  4 +--
 15 files changed, 47 insertions(+), 47 deletions(-)

diff --git a/VECTO/Input Files/Engine.vb b/VECTO/Input Files/Engine.vb
index 9dba717bc0..a2b99c34a4 100644
--- a/VECTO/Input Files/Engine.vb	
+++ b/VECTO/Input Files/Engine.vb	
@@ -651,8 +651,8 @@ Public Class DummyVehicle
 	Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1
 	Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2
 	Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass
-	Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
-	Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
+	Public ReadOnly Property NumberOfPassengersUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
+	Public ReadOnly Property NumberOfPassengersLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
 	Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume
 	Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode
 	Public Property CurbMassExtra As Kilogram Implements IVehicleEngineeringInputData.CurbMassExtra
diff --git a/VECTO/Input Files/Gearbox.vb b/VECTO/Input Files/Gearbox.vb
index 498993d89c..740e696585 100644
--- a/VECTO/Input Files/Gearbox.vb	
+++ b/VECTO/Input Files/Gearbox.vb	
@@ -837,8 +837,8 @@ Public Class MockEngineeringVehicle
     Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1
     Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2
     Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass
-    Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
-    Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
+    Public ReadOnly Property NumberOfPassengersUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
+    Public ReadOnly Property NumberOfPassengersLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
     Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume
     Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode
     Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry
diff --git a/VECTO/Input Files/MockVehicleInputData.vb b/VECTO/Input Files/MockVehicleInputData.vb
index 96fa79e9d8..bde52e8f10 100644
--- a/VECTO/Input Files/MockVehicleInputData.vb	
+++ b/VECTO/Input Files/MockVehicleInputData.vb	
@@ -41,8 +41,8 @@ Public Class MockVehicleInputData
     Public Property MaxNetPower1 As Watt Implements IVehicleDeclarationInputData.MaxNetPower1
     Public Property MaxNetPower2 As Watt Implements IVehicleDeclarationInputData.MaxNetPower2
     Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass
-    Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
-    Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
+    Public ReadOnly Property NumberOfPassengersUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
+    Public ReadOnly Property NumberOfPassengersLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
     Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume
     Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode
     Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry
diff --git a/VECTO/Input Files/Vehicle.vb b/VECTO/Input Files/Vehicle.vb
index 632deaf8c4..9c47a3f07e 100644
--- a/VECTO/Input Files/Vehicle.vb	
+++ b/VECTO/Input Files/Vehicle.vb	
@@ -800,8 +800,8 @@ Public Class Vehicle
 	End Property
 
 	Public ReadOnly Property RegisteredClass As RegistrationClass? Implements IVehicleDeclarationInputData.RegisteredClass
-	Public ReadOnly Property NumberOfPassengersUpperDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
-	Public ReadOnly Property NumberOfPassengersLowerDeck As Integer Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
+	Public ReadOnly Property NumberOfPassengersUpperDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersUpperDeck
+	Public ReadOnly Property NumberOfPassengersLowerDeck As Integer? Implements IVehicleDeclarationInputData.NumberOfPassengersLowerDeck
 	Public ReadOnly Property CargoVolume As CubicMeter Implements IVehicleDeclarationInputData.CargoVolume
 	Public ReadOnly Property VehicleCode As VehicleCode? Implements IVehicleDeclarationInputData.VehicleCode
 	Public ReadOnly Property LowEntry As Boolean? Implements IVehicleDeclarationInputData.LowEntry
diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
index 405aeec543..2bbb9e9e29 100644
--- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
+++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs
@@ -167,9 +167,9 @@ namespace TUGraz.VectoCommon.InputData
 
 		RegistrationClass? RegisteredClass { get; }
 
-		int NumberOfPassengersUpperDeck { get; }
+		int? NumberOfPassengersUpperDeck { get; }
 
-		int NumberOfPassengersLowerDeck { get; }
+		int? NumberOfPassengersLowerDeck { get; }
 
 		// only used for medium lorries type VAN
 		CubicMeter CargoVolume { get; }
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
index 26ed85a637..f2510f89fb 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONComponentInputData.cs
@@ -530,12 +530,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get { return RegistrationClass.unknown; }
 		}
 
-		public int NumberOfPassengersUpperDeck
+		public int? NumberOfPassengersUpperDeck
 		{
 			get { return 0; }
 		}
 
-		public int NumberOfPassengersLowerDeck
+		public int? NumberOfPassengersLowerDeck
 		{
 			get { return 0; }
 		}
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
index 6d914cf844..a38f5a5ab9 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs
@@ -613,12 +613,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			get { return RegistrationClass.unknown; }
 		}
 
-		public virtual int NumberOfPassengersUpperDeck
+		public virtual int? NumberOfPassengersUpperDeck
 		{
 			get { return 0; }
 		}
 
-		public virtual int NumberOfPassengersLowerDeck
+		public virtual int? NumberOfPassengersLowerDeck
 		{
 			get { return 0; }
 		}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
index dc7cdbb1a3..a96c2b49b3 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationVehicleDataProvider.cs
@@ -278,12 +278,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			get { return RegistrationClass.unknown; }
 		}
 
-		public virtual int NumberOfPassengersUpperDeck
+		public virtual int? NumberOfPassengersUpperDeck
 		{
 			get { return 0; }
 		}
 
-		public virtual int NumberOfPassengersLowerDeck
+		public virtual int? NumberOfPassengersLowerDeck
 		{
 			get { return 0; }
 		}
@@ -841,7 +841,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			}
 		}
 
-		public override int NumberOfPassengersLowerDeck
+		public override int? NumberOfPassengersLowerDeck
 		{
 			get {
 				var node = GetNode(XMLNames.Bus_LowerDeck);
@@ -849,7 +849,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			}
 		}
 
-		public override int NumberOfPassengersUpperDeck
+		public override int? NumberOfPassengersUpperDeck
 		{
 			get {
 				var node = GetNode(XMLNames.Bus_UpperDeck);
@@ -1052,8 +1052,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		public string Identifier { get; }
 		public bool ExemptedVehicle { get; }
 		public LegislativeClass? LegislativeClass { get; }
-		public int NumberOfPassengersUpperDeck { get; }
-		public int NumberOfPassengersLowerDeck { get; }
+		public int? NumberOfPassengersUpperDeck { get; }
+		public int? NumberOfPassengersLowerDeck { get; }
 		public CubicMeter CargoVolume
 		{
 			get { return 0.SI<CubicMeter>(); }
@@ -1207,23 +1207,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 		}
 
 
-		public override int NumberOfPassengersLowerDeck
+		public override int? NumberOfPassengersLowerDeck
 		{
 			get
 			{
 				if (!ElementExists(XMLNames.Bus_NumberPassengersLowerDeck))
-					return 0;
+					return null;
 				var node = GetNode(XMLNames.Bus_NumberPassengersLowerDeck);
 				return XmlConvert.ToInt32(node.InnerText);
 			}
 		}
 
-		public override int NumberOfPassengersUpperDeck
+		public override int? NumberOfPassengersUpperDeck
 		{
 			get
 			{
 				if (!ElementExists(XMLNames.Bus_NumberPassengersUpperDeck))
-					return 0;
+					return null;
 				var node = GetNode(XMLNames.Bus_NumberPassengersUpperDeck);
 				return XmlConvert.ToInt32(node.InnerText);
 			}
@@ -1431,23 +1431,23 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
 			}
 		}
 
-		public override int NumberOfPassengersLowerDeck
+		public override int? NumberOfPassengersLowerDeck
 		{
 			get
 			{
 				if (!ElementExists(XMLNames.Bus_NumberPassengersLowerDeck))
-					return 0;
+					return null;
 				var node = GetNode(XMLNames.Bus_NumberPassengersLowerDeck);
 				return XmlConvert.ToInt32(node.InnerText);
 			}
 		}
 
-		public override int NumberOfPassengersUpperDeck
+		public override int? NumberOfPassengersUpperDeck
 		{
 			get
 			{
 				if (!ElementExists(XMLNames.Bus_NumberPassengersUpperDeck))
-					return 0;
+					return null;
 				var node = GetNode(XMLNames.Bus_NumberPassengersUpperDeck);
 				return XmlConvert.ToInt32(node.InnerText);
 			}
diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
index 0d9b712154..d42c747e5e 100644
--- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/DataProvider/XMLEngineeringVehicleDataProvider.cs
@@ -170,8 +170,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering.DataProvider
 		}
 
 		public virtual RegistrationClass? RegisteredClass { get { return RegistrationClass.unknown;} }
-		public virtual int NumberOfPassengersUpperDeck { get { return 0; } }
-		public virtual int NumberOfPassengersLowerDeck { get { return 0; } }
+		public virtual int? NumberOfPassengersUpperDeck { get { return 0; } }
+		public virtual int? NumberOfPassengersLowerDeck { get { return 0; } }
 		public CubicMeter CargoVolume { get; }
 		public virtual VehicleCode? VehicleCode { get { return VectoCommon.Models.VehicleCode.NOT_APPLICABLE; } }
 		public virtual bool? LowEntry { get { return false; } }
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
index 68c53a2b46..7ee50889ef 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs
@@ -27,7 +27,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 		{
 			var passengers = GetNumberOfPassengers(
 				mission, completedVehicle.Length, completedVehicle.Width,
-				completedVehicle.NumberOfPassengersLowerDeck + completedVehicle.NumberOfPassengersUpperDeck, loading.Key);
+				(int)completedVehicle.NumberOfPassengersLowerDeck + (int)completedVehicle.NumberOfPassengersUpperDeck, loading.Key);
 
 			var vehicleData = base.CreateVehicleData(primaryVehicle, segment, mission, loading);
 			vehicleData.InputData = completedVehicle;
@@ -192,7 +192,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 				? 2 * Constants.BusParameters.DriverCompartmentLength // OK
 				: DeclarationData.BusAuxiliaries.CalculateInternalLength(
 					completedVehicle.Length, completedVehicle.VehicleCode,
-					completedVehicle.NumberOfPassengersLowerDeck);
+					(int)completedVehicle.NumberOfPassengersLowerDeck);
 			var correctionLengthDrivetrainVolume = DeclarationData.BusAuxiliaries.CorrectionLengthDrivetrainVolume(
 				completedVehicle.VehicleCode, completedVehicle.LowEntry, primaryVehicle.AxleConfiguration.NumAxles(),
 				primaryVehicle.Articulated);
@@ -219,7 +219,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			ssmInputs.UValue = DeclarationData.BusAuxiliaries.UValue(completedVehicle.VehicleCode.GetFloorType());
 			ssmInputs.NumberOfPassengers = GetNumberOfPassengers(
 				mission, internalLength, correctedBusWidth,
-				completedVehicle.NumberOfPassengersLowerDeck + completedVehicle.NumberOfPassengersUpperDeck, loadingType) + 1; // add driver for 'heat input'
+				(int)completedVehicle.NumberOfPassengersLowerDeck + (int)completedVehicle.NumberOfPassengersUpperDeck, loadingType) + 1; // add driver for 'heat input'
 			ssmInputs.VentilationRate = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, false);
 			ssmInputs.VentilationRateHeating = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, true);
 
@@ -280,7 +280,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 
 			var pasengerCompartmentLength = DeclarationData.BusAuxiliaries.CalculateInternalLength(
 			 	completedVehicle.Length , completedVehicle.VehicleCode, 
-				completedVehicle.NumberOfPassengersLowerDeck) - Constants.BusParameters.DriverCompartmentLength - correctionLengthDrivetrainVolume;
+				(int)completedVehicle.NumberOfPassengersLowerDeck) - Constants.BusParameters.DriverCompartmentLength - correctionLengthDrivetrainVolume;
 			
 			var internalHeight = DeclarationData.BusAuxiliaries.CalculateInternalHeight(completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.Height);
 			var volume = pasengerCompartmentLength * internalHeight * completedVehicle.Width;
diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs
index c44102130f..93d038a1a1 100644
--- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs
+++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs
@@ -40,7 +40,7 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter
 			}
 
 			var passengerCountCalc = loading.Key == LoadingType.ReferenceLoad
-				? VectoMath.Min(passengerCountRef, passengerCountDecl)
+				? VectoMath.Min(passengerCountRef, (int)passengerCountDecl)
 				: passengerCountRef * mission.MissionType.GetLowLoadFactorBus();
 			var payload = passengerCountCalc * mission.MissionType.GetAveragePassengerMass();
 
diff --git a/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs b/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs
index bfacbe4da7..a270d3243c 100644
--- a/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs
+++ b/VectoCore/VectoCore/Models/Declaration/CompletedBusSegments.cs
@@ -11,7 +11,7 @@ using TUGraz.VectoCore.Configuration;
 
 namespace TUGraz.VectoCore.Models.Declaration
 {
-	public sealed class CompletedBusSegments : LookupData<int , VehicleCode?, RegistrationClass?, int, Meter, bool?, Segment>
+	public sealed class CompletedBusSegments : LookupData<int , VehicleCode?, RegistrationClass?, int?, Meter, bool?, Segment>
 	{
 		private const string COMPLETED_BUS_SEGMENTS_CSV = ".CompletedBusSegmentationTable.csv";
 
@@ -37,7 +37,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 			_segmentTable = table.Copy();
 		}
 
-		public override Segment Lookup(int numberOfAxles, VehicleCode? vehicleCode, RegistrationClass? registrationClass, int passengersLowerDeck, Meter bodyHeight, bool? lowEntry)
+		public override Segment Lookup(int numberOfAxles, VehicleCode? vehicleCode, RegistrationClass? registrationClass, int? passengersLowerDeck, Meter bodyHeight, bool? lowEntry)
 		{
 			return LookupCompletedBusVehicle(numberOfAxles, vehicleCode, registrationClass, passengersLowerDeck, bodyHeight, lowEntry);
 		}
@@ -46,7 +46,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		#endregion
 
 
-		private Segment LookupCompletedBusVehicle(int numberOfAxles, VehicleCode? vehicleCode, RegistrationClass? registrationClass, int passengersLowerDeck, Meter bodyHeight, bool? lowEntry)
+		private Segment LookupCompletedBusVehicle(int numberOfAxles, VehicleCode? vehicleCode, RegistrationClass? registrationClass, int? passengersLowerDeck, Meter bodyHeight, bool? lowEntry)
 		{
 			var rows = _segmentTable.AsEnumerable().Where(
 				r => {
@@ -66,7 +66,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 					rows = rows.Where(
 						r => {
 							var limits = r.Field<string>("passengerslowerdeck").Split('-');
-							return passengersLowerDeck.IsBetween(limits[0].ToInt(), limits[1].ToInt());
+							return ((int)passengersLowerDeck).IsBetween(limits[0].ToInt(), limits[1].ToInt());
 						}).ToList();
 				} else if (rows.Any(r => r.Field<string>("bodyheight") != "-")) {
 					rows = rows.Where(
diff --git a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
index ea9f79aa19..f4f9cd1f92 100644
--- a/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockDeclarationVehicleInputData.cs
@@ -47,8 +47,8 @@ namespace TUGraz.VectoCore.Tests.Utils {
 		public Watt MaxNetPower1 { get; }
 		public Watt MaxNetPower2 { get; }
 		public RegistrationClass? RegisteredClass { get; set; }
-		public int NumberOfPassengersUpperDeck { get; set; }
-		public int NumberOfPassengersLowerDeck { get; set; }
+		public int? NumberOfPassengersUpperDeck { get; set; }
+		public int? NumberOfPassengersLowerDeck { get; set; }
 		public CubicMeter CargoVolume { get; }
 		public VehicleCode? VehicleCode { get; set; }
 		public bool? LowEntry { get; }
@@ -116,8 +116,8 @@ namespace TUGraz.VectoCore.Tests.Utils {
 		public StateOfCompletion StateOfCompletion { get; }
 		public Watt MaxNetPower2 { get; }
 		public RegistrationClass? RegisteredClass { get; set; }
-		public int NumberOfPassengersUpperDeck { get; set; }
-		public int NumberOfPassengersLowerDeck { get; set; }
+		public int? NumberOfPassengersUpperDeck { get; set; }
+		public int? NumberOfPassengersLowerDeck { get; set; }
 		public CubicMeter CargoVolume { get; }
 		public VehicleCode? VehicleCode { get; set; }
 		public bool? LowEntry { get; }
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
index 70ca58ce8f..330569e5b7 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs
@@ -574,8 +574,8 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(null, vehicleData.AirdragModifiedMultistage);
 			Assert.AreEqual(null, vehicleData.TankSystem);
 			Assert.AreEqual(null, vehicleData.RegisteredClass);
-			Assert.AreEqual(0, vehicleData.NumberOfPassengersLowerDeck);
-			Assert.AreEqual(0, vehicleData.NumberOfPassengersUpperDeck);
+			Assert.AreEqual(null, vehicleData.NumberOfPassengersLowerDeck);
+			Assert.AreEqual(null, vehicleData.NumberOfPassengersUpperDeck);
 			Assert.AreEqual(null, vehicleData.VehicleCode);
 			Assert.AreEqual(null, vehicleData.LowEntry);
 			Assert.AreEqual(null, vehicleData.Height);
diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
index ea5c6ed061..e36d08f925 100644
--- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
+++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs
@@ -162,8 +162,8 @@ namespace TUGraz.VectoCore.Tests.XML
 			Assert.AreEqual(null, vehicle.CurbMassChassis);
 			Assert.AreEqual(null, vehicle.GrossVehicleMassRating);
 			Assert.AreEqual(null, vehicle.RegisteredClass);
-			Assert.AreEqual(0, vehicle.NumberOfPassengersLowerDeck);
-			Assert.AreEqual(0, vehicle.NumberOfPassengersUpperDeck);
+			Assert.AreEqual(null, vehicle.NumberOfPassengersLowerDeck);
+			Assert.AreEqual(null, vehicle.NumberOfPassengersUpperDeck);
 			Assert.AreEqual(null, vehicle.VehicleCode);
 			Assert.AreEqual(null, vehicle.LowEntry);
 			Assert.AreEqual(null, vehicle.Height);
-- 
GitLab