From 6ae612241e3f06511a49f75a8caf481c02b19617 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Tue, 28 Jan 2020 18:25:35 +0100
Subject: [PATCH] making some more testcases run

---
 .../TestFiles/Integration/AdvAuxTest.aaux     | 246 +----------------
 .../TestFiles/Integration/testHVACssm.AHSM    |   8 +
 .../VectoAuxiliariesTests/TestFiles/ssm.Ahsm  |  13 +-
 .../UnitTests/SSMTOOLTests.vb                 | 260 +++++++++---------
 .../VectoAuxiliariesTests/UnitTests/Utils.vb  |  18 +-
 .../FileIO/JSON/BusAuxiliaryInputData.cs      |  42 +--
 .../InputData/FileIO/JSON/SSMInputData.cs     |   9 +-
 7 files changed, 194 insertions(+), 402 deletions(-)

diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux
index 5dc8b18d75..9af4b03168 100644
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux
+++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/AdvAuxTest.aaux
@@ -17,248 +17,10 @@
       "PowerNetVoltage": 28.3,
       "AlternatorMap": "testCombAlternatorMap_1Alt.AALT",
       "AlternatorGearEfficiency": 0.92,
-      "ElectricalConsumers": [
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Doors",
-          "ConsumerName": "Doors per vehicle",
-          "NominalConsumptionAmps": 3.0,
-          "NumberInActualVehicle": 3,
-          "PhaseIdle_TractionOn": 0.096339,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": true,
-          "Category": "Veh Electronics &Engine",
-          "ConsumerName": "Controllers,Valves etc",
-          "NominalConsumptionAmps": 25.0,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Radio City",
-          "NominalConsumptionAmps": 2.0,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 0.8,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Radio Intercity",
-          "NominalConsumptionAmps": 5.0,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.8,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Radio/Audio Tourism",
-          "NominalConsumptionAmps": 9.0,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.8,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Fridge",
-          "NominalConsumptionAmps": 4.0,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.5,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Kitchen Standard",
-          "NominalConsumptionAmps": 67.0,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.05,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Interior lights City/ Intercity + Doorlights [1/m]",
-          "NominalConsumptionAmps": 1.0,
-          "NumberInActualVehicle": 12,
-          "PhaseIdle_TractionOn": 0.7,
-          "PowerNetVoltage": 28.3,
-          "Info": "1 Per metre length of bus"
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "LED Interior lights ceiling city/ontercity + door [1/m]",
-          "NominalConsumptionAmps": 0.6,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.7,
-          "PowerNetVoltage": 28.3,
-          "Info": "1 Per metre length of bus"
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "Interior lights Tourism + reading [1/m]",
-          "NominalConsumptionAmps": 1.1,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.7,
-          "PowerNetVoltage": 28.3,
-          "Info": "1 Per metre length of bus"
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Vehicle basic equipment",
-          "ConsumerName": "LED Interior lights ceiling Tourism + LED reading [1/m]",
-          "NominalConsumptionAmps": 0.66,
-          "NumberInActualVehicle": 0,
-          "PhaseIdle_TractionOn": 0.7,
-          "PowerNetVoltage": 28.3,
-          "Info": "1 Per metre length of bus"
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Customer Specific Equipment",
-          "ConsumerName": "External Displays Font/Side/Rear",
-          "NominalConsumptionAmps": 2.65017676,
-          "NumberInActualVehicle": 4,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Customer Specific Equipment",
-          "ConsumerName": "Internal display per unit ( front side rear)",
-          "NominalConsumptionAmps": 1.06007063,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Customer Specific Equipment",
-          "ConsumerName": "CityBus Ref EBSF Table4 Devices ITS No Displays",
-          "NominalConsumptionAmps": 9.3,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Lights",
-          "ConsumerName": "Exterior Lights BULB",
-          "NominalConsumptionAmps": 7.4,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Lights",
-          "ConsumerName": "Day running lights LED bonus",
-          "NominalConsumptionAmps": -0.723,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Lights",
-          "ConsumerName": "Antifog rear lights LED bonus",
-          "NominalConsumptionAmps": -0.17,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Lights",
-          "ConsumerName": "Position lights LED bonus",
-          "NominalConsumptionAmps": -1.2,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Lights",
-          "ConsumerName": "Direction lights LED bonus",
-          "NominalConsumptionAmps": -0.3,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        },
-        {
-          "$type":
-            "TUGraz.VectoCore.BusAuxiliaries.DownstreamModules.Impl.Electrics.ElectricalConsumer, BusAuxiliaries",
-          "BaseVehicle": false,
-          "Category": "Lights",
-          "ConsumerName": "Brake Lights LED bonus",
-          "NominalConsumptionAmps": -1.2,
-          "NumberInActualVehicle": 1,
-          "PhaseIdle_TractionOn": 1.0,
-          "PowerNetVoltage": 28.3,
-          "Info": ""
-        }
-      ],
+      "ElectricalConsumers": {
+        "AverageCurrentDemandInclBaseLoad": 50,
+        "AverageCurrentDemandWithoutBaseLoad": 25.0
+      },
       "DoorActuationTimeSecond": 4,
       "ResultCardIdle": [],
       "ResultCardTraction": [],
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/testHVACssm.AHSM b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/testHVACssm.AHSM
index f4b4b54270..66b4dc05f7 100644
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/testHVACssm.AHSM
+++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/Integration/testHVACssm.AHSM
@@ -7,6 +7,14 @@
       "BC_PassengerBoundaryTemperature": 12.0,
       "BC_HeatingBoundaryTemperature": 18.0,
       "BC_CoolingBoundaryTemperature": 23.0,
+      "BC_VentilationRate": 25.0,
+      "BC_VentilationRateHeating": 25.0,
+      "BC_FloorType": "HighFloor", 
+      "BC_BusSurfaceArea": 54.3405, 
+      "BC_BusWindowSurfaceArea": 20.9825, 
+      "BC_BusVolume": 0, 
+      "BC_UValue": 3, 
+      "BC_COP": 4.0,
       "BC_HighVentilation": 20.0,
       "BC_lowVentilation": 7.0,
       "BC_SpecificVentilationPower": 0.56,
diff --git a/VECTOAux/VectoAuxiliariesTests/TestFiles/ssm.Ahsm b/VECTOAux/VectoAuxiliariesTests/TestFiles/ssm.Ahsm
index 6b62be0187..b6297135b8 100644
--- a/VECTOAux/VectoAuxiliariesTests/TestFiles/ssm.Ahsm
+++ b/VECTOAux/VectoAuxiliariesTests/TestFiles/ssm.Ahsm
@@ -14,13 +14,14 @@
       "BC_UValues": 3.0,
       "BC_HeatingBoundaryTemperature": 20.0,
       "BC_CoolingBoundaryTemperature": 24.0,
-      "BC_HighVentilation": 25.0,
-      "BC_lowVentilation": 8.0,
-      "BC_High": 1545.30796875,
-      "BC_Low": 494.49855,
-      "BC_HighVentPowerW": 927.18478125,
-      "BC_LowVentPowerW": 296.69913,
+      "BC_VentilationRate": 25.0,
+      "BC_VentilationRateHeating": 25.0,
       "BC_SpecificVentilationPower": 0.6,
+      "BC_FloorType": "HighFloor", 
+      "BC_BusSurfaceArea": 54.3405, 
+      "BC_BusWindowSurfaceArea": 20.9825, 
+      "BC_BusVolume": 0, 
+      "BC_UValue": 3, 
       "BC_COP": 4.0,
       "BC_AuxHeaterEfficiency": 1.0,
       "BC_GCVDieselOrHeatingOil": 13.0,
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
index 670f09d313..980555c6eb 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/SSMTOOLTests.vb
@@ -609,181 +609,181 @@ Namespace UnitTests
                             1e-3)
         End Sub
 
-        'SSMInputs Comparison
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_GENINPUTS_EQUAL()
+        'SSMInputs Comparison -- MQ: 2020-01-28: testcases no longer needed - ssminputdata and ssmtool is not used to 'edit' ssm data
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_GENINPUTS_EQUAL()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            '    New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
-            '', New HVACConstants())
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                        DeclarationData.BusAuxiliaries.
-            '                                                           DefaultEnvironmentalConditions,
-            '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
-            ', New HVACConstants())
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    '    New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
+        '    '', New HVACConstants())
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                        DeclarationData.BusAuxiliaries.
+        '    '                                                           DefaultEnvironmentalConditions,
+        '    '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
+        '    ', New HVACConstants())
 
 
-            'Assert.IsTrue(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsTrue(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
 
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_GENINPUTS_UNEQUAL()
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_GENINPUTS_UNEQUAL()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                        DeclarationData.BusAuxiliaries.
-            '                                                           DefaultEnvironmentalConditions,
-            '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
-            ' New HVACConstants())
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                        DeclarationData.BusAuxiliaries.
+        '    '                                                           DefaultEnvironmentalConditions,
+        '    '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
+        '    ' New HVACConstants())
 
-            'Alter somthing
-            'CType(ssmTool1.genInputs, IssmInputs)._vehicle.Length = 11.SI(Of Meter)
-            CType(ssmTool1.SSMInputs, SSMInputs).CoolingBoundaryTemperature =
-                99.0.DegCelsiusToKelvin()
+        '    'Alter somthing
+        '    'CType(ssmTool1.genInputs, IssmInputs)._vehicle.Length = 11.SI(Of Meter)
+        '    CType(ssmTool1.SSMInputs, SSMInputs).CoolingBoundaryTemperature =
+        '        99.0.DegCelsiusToKelvin()
 
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                        DeclarationData.BusAuxiliaries.
-            '                                                           DefaultEnvironmentalConditions,
-            '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
-            ', New HVACConstants())
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                        DeclarationData.BusAuxiliaries.
+        '    '                                                           DefaultEnvironmentalConditions,
+        '    '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList)) _
+        '    ', New HVACConstants())
 
 
-            'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
 
-        'TechListBenefitLine Comparison
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_TECHLIST_EQUAL()
+        ''TechListBenefitLine Comparison
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_TECHLIST_EQUAL()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
 
 
-            'Assert.IsTrue(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsTrue(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
 
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_TECHLIST_EMPTYLISTS_UNEQUALCOUNT()
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_TECHLIST_EMPTYLISTS_UNEQUALCOUNT()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
 
-            'Change something on techlist
-            AddDefaultTechLine(ssmTool1)
+        '    'Change something on techlist
+        '    AddDefaultTechLine(ssmTool1)
 
-            'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
 
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_TECHLIST_IDENTICAL_EQUAL()
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_TECHLIST_IDENTICAL_EQUAL()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
 
-            'Change something on techlist
-            AddDefaultTechLine(ssmTool1)
-            AddDefaultTechLine(ssmTool2)
+        '    'Change something on techlist
+        '    AddDefaultTechLine(ssmTool1)
+        '    AddDefaultTechLine(ssmTool2)
 
-            'Assert.IsTrue(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsTrue(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
 
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_TECHLIST_IDENTICAL_SINGLEKeyValueDifference()
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_TECHLIST_IDENTICAL_SINGLEKeyValueDifference()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                        DeclarationData.BusAuxiliaries.
-            '                                                           DefaultEnvironmentalConditions,
-            '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList))
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                        DeclarationData.BusAuxiliaries.
+        '    '                                                           DefaultEnvironmentalConditions,
+        '    '                                                        DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
 
-            'Change something on techlist
-            AddDefaultTechLine(ssmTool1)
-            AddDefaultTechLine(ssmTool2)
+        '    'Change something on techlist
+        '    AddDefaultTechLine(ssmTool1)
+        '    AddDefaultTechLine(ssmTool2)
 
-            'Make Unequal
-            'CType(ssmTool2.TechList.TechLines(0), SSMTechnology).BenefitName = "Doobie"
+        '    'Make Unequal
+        '    'CType(ssmTool2.TechList.TechLines(0), SSMTechnology).BenefitName = "Doobie"
 
-            'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
 
-        <Test()>
-        Public Sub SSMTOOL_COMPARISON_TECHLIST_IDENTICAL_SINGLEValueDifference()
+        '<Test()>
+        'Public Sub SSMTOOL_COMPARISON_TECHLIST_IDENTICAL_SINGLEValueDifference()
 
-            Const filePath As String = "SSMTOOLTestSaveRetreive.json"
+        '    Const filePath As String = "SSMTOOLTestSaveRetreive.json"
 
 
-            Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
-            Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
-            'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
-            '                                                            DeclarationData.BusAuxiliaries.
-            '                                                               DefaultEnvironmentalConditions,
-            '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool1 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
+        '    Dim ssmTool2 As SSMTOOL = New SSMTOOL(Utils.GetAuxTestConfig().SSMInputs)
+        '    'New SSMTOOL(SSMInputData.ReadFile(filePath,utils.GetDefaultVehicleData(),
+        '    '                                                            DeclarationData.BusAuxiliaries.
+        '    '                                                               DefaultEnvironmentalConditions,
+        '    '                                                            DeclarationData.BusAuxiliaries.SSMTechnologyList))
 
-            'Change something on techlist
-            AddDefaultTechLine(ssmTool1)
-            AddDefaultTechLine(ssmTool2)
+        '    'Change something on techlist
+        '    AddDefaultTechLine(ssmTool1)
+        '    AddDefaultTechLine(ssmTool2)
 
-            'Make Unequal
-            'CType(ssmTool2.TechList.TechLines(0), SSMTechnology).ActiveVV = False
+        '    'Make Unequal
+        '    'CType(ssmTool2.TechList.TechLines(0), SSMTechnology).ActiveVV = False
 
-            'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
-        End Sub
+        '    'Assert.IsFalse(ssmTool1.IsEqualTo(ssmTool2))
+        'End Sub
     End Class
 End Namespace
 
diff --git a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
index c627dea59f..fb9e884bd4 100644
--- a/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
+++ b/VECTOAux/VectoAuxiliariesTests/UnitTests/Utils.vb
@@ -107,12 +107,13 @@ Public Class Utils
                 .ElectricalUserInputsConfig = New ElectricsUserInputsConfig() With {
                 .AverageCurrentDemandInclBaseLoad = 0.SI(Of Ampere),
                 .AverageCurrentDemandWithoutBaseLoad = 0.SI(of Ampere),
-                .ResultCardIdle = New ResultCard(New List(Of SmartResult)()),
-                .ResultCardTraction = New ResultCard(New List(Of SmartResult)()),
-                .ResultCardOverrun = New ResultCard(New List(Of SmartResult)()),
+                .ResultCardIdle = New DummyResultCard(), ' New ResultCard(New List(Of SmartResult)()),
+                .ResultCardTraction = New DummyResultCard(), 'New ResultCard(New List(Of SmartResult)()),
+                .ResultCardOverrun = New DummyResultCard(), 'New ResultCard(New List(Of SmartResult)()),
                 .AlternatorMap = AlternatorReader.ReadMap("TestFiles\testAlternatormap.aalt"),
                 .DoorActuationTimeSecond = Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond,
-                .PowerNetVoltage = Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage
+                .PowerNetVoltage = Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage,
+                .SmartElectrical = false
                 },
                 .PneumaticAuxillariesConfig = CreatePneumaticAuxConfig(retarder),
                 .PneumaticUserInputsConfig = New PneumaticUserInputsConfig() With {
@@ -123,16 +124,21 @@ Public Class Utils
                 .Doors = ConsumerTechnology.Pneumatically,
                 .KneelingHeight = 70.SI(Unit.SI.Milli.Meter).Cast (Of Meter), 
                 .SmartAirCompression = False,
-                .SmartRegeneration = False  
+                .SmartRegeneration = False 
                 },
                 .SSMInputs = New SSMInputs(Nothing, heatingFuel) With {
                 .Technologies = techBenefits,
+                .BusFloorType = FloorType.HighFloor,
+                .BusSurfaceArea = 0.SI(Of SquareMeter),
+                .BusVolume = 0.SI(Of CubicMeter),
+                .BusWindowSurface = 0.SI(of SquareMeter),
+                .VentilationRate = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
+                .VentilationRateHeating = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
                 .DefaultConditions =
                 New EnvironmentalConditionMapEntry(25.0.DegCelsiusToKelvin(), 400.SI (Of WattPerSquareMeter), 1.0),
                 .EnvironmentalConditionsMap = DeclarationData.BusAuxiliaries.DefaultEnvironmentalConditions,
                 .HeatingBoundaryTemperature = 18.0.DegCelsiusToKelvin(),
                 .CoolingBoundaryTemperature = 23.0.DegCelsiusToKelvin(),
-                .VentilationRate = 20.SI(Unit.SI.Per.Hour).Cast (Of PerSecond),
                 .SpecificVentilationPower = 0.56.SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast (Of JoulePerCubicMeter),
                 .HVACCompressorType = ACCompressorType.TwoStage, 
                 .HVACMaxCoolingPower = 18.si(Unit.SI.kilo.watt).Cast (of Watt),
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
index c064f0b7cd..8f2d74027f 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/BusAuxiliaryInputData.cs
@@ -80,27 +80,35 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			// PowerNetVoltage
 			//electricalUserInputsConfig.PowerNetVoltage = elData.GetEx<double>("PowerNetVoltage").SI<Volt>();
 
+
+			// SmartElectrical
+			electricalUserInputsConfig.SmartElectrical = elData.GetEx<bool>("SmartElectrical");
+
 			// ResultCardIdle
 
-			electricalUserInputsConfig.ResultCardIdle = new ResultCard(
-				elData["ResultCardIdle"].Select(
-					result => new SmartResult(
-						result.GetEx<double>("Amps").SI<Ampere>(), result.GetEx<double>("SmartAmps").SI<Ampere>())).ToList());
+			electricalUserInputsConfig.ResultCardIdle = electricalUserInputsConfig.SmartElectrical
+				? new ResultCard(
+					elData["ResultCardIdle"].Select(
+						result => new SmartResult(
+							result.GetEx<double>("Amps").SI<Ampere>(), result.GetEx<double>("SmartAmps").SI<Ampere>())).ToList())
+				: (IResultCard)new DummyResultCard();
 
 			// ResultCardOverrun
-			electricalUserInputsConfig.ResultCardOverrun = new ResultCard(
-				elData["ResultCardOverrun"].Select(
-					result => new SmartResult(
-						result.GetEx<double>("Amps").SI<Ampere>(), result.GetEx<double>("SmartAmps").SI<Ampere>())).ToList());
+			electricalUserInputsConfig.ResultCardOverrun = electricalUserInputsConfig.SmartElectrical
+				? new ResultCard(
+					elData["ResultCardOverrun"].Select(
+						result => new SmartResult(
+							result.GetEx<double>("Amps").SI<Ampere>(), result.GetEx<double>("SmartAmps").SI<Ampere>())).ToList())
+				: (IResultCard)new DummyResultCard();
 
 			// ResultCardTraction
-			electricalUserInputsConfig.ResultCardTraction = new ResultCard(
-				elData["ResultCardTraction"].Select(
-					result => new SmartResult(
-						result.GetEx<double>("Amps").SI<Ampere>(), result.GetEx<double>("SmartAmps").SI<Ampere>())).ToList());
+			electricalUserInputsConfig.ResultCardTraction = electricalUserInputsConfig.SmartElectrical
+				? new ResultCard(
+					elData["ResultCardTraction"].Select(
+						result => new SmartResult(
+							result.GetEx<double>("Amps").SI<Ampere>(), result.GetEx<double>("SmartAmps").SI<Ampere>())).ToList())
+				: (IResultCard)new DummyResultCard();
 
-			// SmartElectrical
-			electricalUserInputsConfig.SmartElectrical = elData.GetEx<bool>("SmartElectrical");
 			return electricalUserInputsConfig;
 		}
 
@@ -137,16 +145,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		{
 			var pneumaticUserInputsConfig = new PneumaticUserInputsConfig();
 			//pneumaticUserInputsConfig.ActuationsMap = PneumaticActuationsMapReader.Read(Path.Combine(baseDir, puData.GetEx<string>("ActuationsMap")));
-			pneumaticUserInputsConfig.AdBlueDosing = puData.GetEx<string>("AdBlueDosing").ParseEnum<ConsumerTechnology>();
+			pneumaticUserInputsConfig.AdBlueDosing = ConsumerTechnologyHelper.Parse(puData.GetEx<string>("AdBlueDosing"));
 			pneumaticUserInputsConfig.AirSuspensionControl =
-				puData.GetEx<string>("AirSuspensionControl").ParseEnum<ConsumerTechnology>();
+				ConsumerTechnologyHelper.Parse(puData.GetEx<string>("AirSuspensionControl"));
 			pneumaticUserInputsConfig.CompressorGearEfficiency = puData.GetEx<double>("CompressorGearEfficiency");
 			pneumaticUserInputsConfig.CompressorGearRatio = puData.GetEx<double>("CompressorGearRatio");
 			var file = puData.GetEx<string>("CompressorMap");
 			if (!string.IsNullOrWhiteSpace(file)) {
 				pneumaticUserInputsConfig.CompressorMap = CompressorMapReader.ReadFile(Path.Combine(baseDir, file));
 			}
-			pneumaticUserInputsConfig.Doors = puData.GetEx<string>("Doors").ParseEnum<ConsumerTechnology>();
+			pneumaticUserInputsConfig.Doors = ConsumerTechnologyHelper.Parse(puData.GetEx<string>("Doors"));
 			pneumaticUserInputsConfig.KneelingHeight =
 				puData.GetEx<double>("KneelingHeightMillimeters").SI(Unit.SI.Milli.Meter).Cast<Meter>();
 			//pneumaticUserInputsConfig.RetarderBrake = puData.GetEx<bool>("RetarderBrake");
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs
index 3c578d1597..8e7cac17b6 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/SSMInputData.cs
@@ -42,11 +42,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 			retVal.HeatingBoundaryTemperature = genInput.GetEx<double>("BC_HeatingBoundaryTemperature").DegCelsiusToKelvin();
 			retVal.CoolingBoundaryTemperature = genInput.GetEx<double>("BC_CoolingBoundaryTemperature").DegCelsiusToKelvin();
 			retVal.VentilationRate = genInput.GetEx<double>("BC_VentilationRate").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
+			retVal.VentilationRateHeating = genInput.GetEx<double>("BC_VentilationRateHeating").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
 			//retVal.LowVentilation = genInput.GetEx<double>("BC_lowVentilation").SI(Unit.SI.Per.Hour).Cast<PerSecond>();
 			retVal.SpecificVentilationPower = genInput.GetEx<double>("BC_SpecificVentilationPower").SI(Unit.SI.Watt.Hour.Per.Cubic.Meter).Cast<JoulePerCubicMeter>();
 			retVal.AuxHeaterEfficiency = genInput.GetEx<double>("BC_AuxHeaterEfficiency");
+			retVal.BusFloorType = genInput.GetEx<string>("BC_FloorType").ParseEnum<FloorType>();
+			retVal.BusSurfaceArea = genInput.GetEx<double>("BC_BusSurfaceArea").SI<SquareMeter>();
+			retVal.BusWindowSurface = genInput.GetEx<double>("BC_BusWindowSurfaceArea").SI<SquareMeter>();
+			retVal.BusVolume = genInput.GetEx<double>("BC_BusVolume").SI<CubicMeter>();
+			retVal.UValue = genInput.GetEx<double>("BC_UValue").SI<WattPerKelvinSquareMeter>();
+			retVal.COP = genInput.GetEx<double>("BC_COP");
 			//retVal.GCVDieselOrHeatingOil = genInput.GetEx<double>("BC_GCVDieselOrHeatingOil").SI(Unit.SI.Kilo.Watt.Hour.Per.Kilo.Gramm).Cast<JoulePerKilogramm>();
-			//retVal.MaxTemperatureDeltaForLowFloorBusses = genInput.GetEx<double>("BC_MaxTemperatureDeltaForLowFloorBusses").SI<Kelvin>();
+																										//retVal.MaxTemperatureDeltaForLowFloorBusses = genInput.GetEx<double>("BC_MaxTemperatureDeltaForLowFloorBusses").SI<Kelvin>();
 			retVal.MaxPossibleBenefitFromTechnologyList = genInput.GetEx<double>("BC_MaxPossibleBenefitFromTechnologyList");
 			//retVal.EnviromentalTemperature = genInput.GetEx<double>("EC_EnviromentalTemperature").DegCelsiusToKelvin();
 			//retVal.Solar = genInput.GetEx<double>("EC_Solar").SI<WattPerSquareMeter>();
-- 
GitLab