diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
index afbf33095835f5a78d700d9c08099bca6f5a2a81..c5eef0dc51871576a710511efa390d5129e49de3 100644
--- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
+++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs
@@ -129,7 +129,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 				AssertAngledriveData(relatedRuns[i]);
 				AssertAngledriveData(relatedRuns[i]);
 				AssertAuxiliaryData(relatedRuns[i]);
-				AssertElectricalUserInputConfig(relatedRuns[i]);
+				AssertElectricalUserInputConfig(relatedRuns[i], i);
 				AssertPneumaticUserInputsConfig(relatedRuns[i]);
 				AssertPneumaticConsumerDemand(relatedRuns[i]);
 				AssertSSMBusParameters(relatedRuns[i], i);
@@ -171,22 +171,23 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 
 		private void AssertLoading(Kilogram genericLoading, Kilogram specificLoading, int index)
 		{
-			switch (index)
-			{
+			switch (index) {
+				// generic loading values shall match expected values of primary vehicle for IU and CO cycle
+				// see TestPrimaryBusGroup41Test
 				case 0:
-					Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-4);
-					Assert.AreEqual(2309.4738, specificLoading.Value(), 1e-4);
+					Assert.AreEqual(1720.6992, genericLoading.Value(), 1e-4);
+					Assert.AreEqual(1693.6141, specificLoading.Value(), 1e-4);
 					break;
 				case 1:
-					Assert.AreEqual(5051.2950, genericLoading.Value(), 1e-4);
+					Assert.AreEqual(4301.748, genericLoading.Value(), 1e-4);
 					Assert.AreEqual(2130, specificLoading.Value(), 1e-0);
 					break;
 				case 2:
-					Assert.AreEqual(3367.53, genericLoading.Value(), 1e-2);
-					Assert.AreEqual(1539.6492, specificLoading.Value(), 1e-4);
+					Assert.AreEqual(1094.9904, genericLoading.Value(), 1e-2);
+					Assert.AreEqual(1077.7544, specificLoading.Value(), 1e-4);
 					break;
 				case 3:
-					Assert.AreEqual(3367.53, genericLoading.Value(), 1e-2);
+					Assert.AreEqual(2737.476, genericLoading.Value(), 1e-2);
 					Assert.AreEqual(2130.0, specificLoading.Value(), 1e-0);
 					break;
 			}
@@ -244,10 +245,10 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var genericAirdragData = relatedRun.VectoRunDataGenericBody.AirdragData;
 			var specificAirdragData = relatedRun.VectoRunDataSpezificBody.AirdragData;
 
-			var genericDragArea = 5.2.SI<SquareMeter>();
+			var genericDragArea = 4.6.SI<SquareMeter>();
 			var specificDragArea = 6.34.SI<SquareMeter>();
 
-			var genericVehicleHeight = 3.7.SI<Meter>();
+			var genericVehicleHeight = 3.45.SI<Meter>();
 			var specificVehicleHeight = 3.0.SI<Meter>() + 0.30.SI<Meter>();
 
 			var genericCrosswind = GetCrosswindCorrection("CoachBus", genericDragArea, genericVehicleHeight);
@@ -295,7 +296,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			Assert.AreEqual(700 * Constants.RPMToRad, genericEngine.IdleSpeed.Value(), 1e-9);
 			Assert.AreEqual(genericEngine.IdleSpeed, specificEngine.IdleSpeed);
 
-			Assert.AreEqual(8.SI<CubicMeter>().Value() * 1E-6, genericEngine.Displacement.Value());
+			Assert.AreEqual(7700.SI(Unit.SI.Cubic.Centi.Meter).Value(), genericEngine.Displacement.Value());
 			Assert.AreEqual(genericEngine.Displacement, specificEngine.Displacement);
 
 			Assert.AreEqual(
@@ -384,12 +385,12 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 
 		private void AssertGears(IList<GearData> gears)
 		{
-			AssertGear(3.364, 1900.SI<NewtonMeter>(), 262, gears[0]);
-			AssertGear(1.909, 1900.SI<NewtonMeter>(), 262, gears[1]);
-			AssertGear(1.421, null, 262, gears[2]);
-			AssertGear(1.000, null, 262, gears[3]);
-			AssertGear(0.720, null, 262, gears[4]);
-			AssertGear(0.615, null, 262, gears[5]);
+			AssertGear(3.364, 1900.SI<NewtonMeter>(), 2500, gears[0]);
+			AssertGear(1.909, 1900.SI<NewtonMeter>(), 2500, gears[1]);
+			AssertGear(1.421, null, 2500, gears[2]);
+			AssertGear(1.000, null, 2500, gears[3]);
+			AssertGear(0.720, null, 2500, gears[4]);
+			AssertGear(0.615, null, 2500, gears[5]);
 		}
 
 		private void AssertGear(double ratio, NewtonMeter maxTorque, double maxSpeed, GearData gear)
@@ -464,18 +465,18 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 		{
 			Assert.AreEqual(12, lossMap._entries.Count);
 
-			AssertLossmapEntry(0, -1491.6797, 46.7818, lossMap._entries[0]);
+			AssertLossmapEntry(0, -75337.8336, 1585.2433, lossMap._entries[0]);
 			AssertLossmapEntry(0, -22.2920, 16.1695, lossMap._entries[1]);
 			AssertLossmapEntry(0, 54.6311, 16.1695, lossMap._entries[2]);
-			AssertLossmapEntry(0, 1585.2433, 46.7818, lossMap._entries[3]);
-			AssertLossmapEntry(325, -1491.6797, 46.7818, lossMap._entries[4]);
+			AssertLossmapEntry(0, 78508.3203, 1585.2433, lossMap._entries[3]);
+			AssertLossmapEntry(325, -75337.8336, 1585.2433, lossMap._entries[4]);
 			AssertLossmapEntry(325, -22.2920, 16.1695, lossMap._entries[5]);
 			AssertLossmapEntry(325, 54.6311, 16.1695, lossMap._entries[6]);
-			AssertLossmapEntry(325, 1585.2433, 46.7818, lossMap._entries[7]);
-			AssertLossmapEntry(32500, -1110.9105, 427.5510, lossMap._entries[8]);
+			AssertLossmapEntry(325, 78508.3203, 1585.2433, lossMap._entries[7]);
+			AssertLossmapEntry(32500, -74957.0644, 1966.0126, lossMap._entries[8]);
 			AssertLossmapEntry(32500, 358.4772, 396.9388, lossMap._entries[9]);
 			AssertLossmapEntry(32500, 435.4003, 396.9388, lossMap._entries[10]);
-			AssertLossmapEntry(32500, 1966.0126, 427.5510, lossMap._entries[11]);
+			AssertLossmapEntry(32500, 78889.0895, 1966.0126, lossMap._entries[11]);
 
 		}
 
@@ -522,7 +523,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 
 		#region Bus Auxiliary Electrical UserInput Config Asserts
 
-		private void AssertElectricalUserInputConfig(RelatedRun relatedRun)
+		private void AssertElectricalUserInputConfig(RelatedRun relatedRun, int idx)
 		{
 			var genericElectric = 
 				relatedRun.VectoRunDataGenericBody.BusAuxiliaries.ElectricalUserInputsConfig;
@@ -535,11 +536,13 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			Assert.AreEqual(null, genericElectric.MaxAlternatorPower);
 			Assert.AreEqual(genericElectric.MaxAlternatorPower, specificElectric.MaxAlternatorPower);
 
-			Assert.AreEqual(null, genericElectric.ElectricStorageCapacity);
+			Assert.AreEqual(0.SI<WattSecond>(), genericElectric.ElectricStorageCapacity);
 			Assert.AreEqual(genericElectric.ElectricStorageCapacity, specificElectric.ElectricStorageCapacity);
 
 			Assert.AreEqual(0.7 ,genericElectric.AlternatorMap.GetEfficiency(0.RPMtoRad(),0.0.SI<Ampere>()));
-			Assert.AreEqual(genericElectric.AlternatorMap, specificElectric.AlternatorMap); 
+			Assert.AreEqual(
+				genericElectric.AlternatorMap.GetEfficiency(1000.RPMtoRad(), 100.SI<Ampere>()),
+				specificElectric.AlternatorMap.GetEfficiency(1000.RPMtoRad(), 100.SI<Ampere>())); 
 
 			Assert.AreEqual(Constants.BusAuxiliaries.ElectricSystem.AlternatorGearEfficiency, genericElectric.AlternatorGearEfficiency);
 			Assert.AreEqual(genericElectric.AlternatorGearEfficiency, specificElectric.AlternatorGearEfficiency);
@@ -547,21 +550,27 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			Assert.AreEqual(Constants.BusAuxiliaries.ElectricalConsumers.DoorActuationTimeSecond, genericElectric.DoorActuationTimeSecond);
 			Assert.AreEqual(genericElectric.DoorActuationTimeSecond, specificElectric.DoorActuationTimeSecond);
 
-			//ToDo Test AverageCurrentDemandInclBaseLoad & AverageCurrentDemandWithoutBaseLoad
-			//Assert.AreEqual(0, genericElectric.AverageCurrentDemandInclBaseLoad);
-			//Assert.AreEqual(0, genericElectric.AverageCurrentDemandWithoutBaseLoad);
+			switch (idx) {
+				case 0:
+				case 1:		
+					Assert.AreEqual(50.1950, genericElectric.AverageCurrentDemandInclBaseLoad.Value(), 1e-3);
+					Assert.AreEqual(17.795, genericElectric.AverageCurrentDemandWithoutBaseLoad.Value(), 1e-3);
 
-			//Assert.AreEqual(0, specificElectric.AverageCurrentDemandInclBaseLoad);
-			//Assert.AreEqual(0, specificElectric.AverageCurrentDemandWithoutBaseLoad);
+					Assert.AreEqual(54.981, specificElectric.AverageCurrentDemandInclBaseLoad.Value(), 1e-3);
+					Assert.AreEqual(22.581, specificElectric.AverageCurrentDemandWithoutBaseLoad.Value(), 1e-3);
+					break;
+				case 2:
+				case 3:
+					Assert.AreEqual(54.235, genericElectric.AverageCurrentDemandInclBaseLoad.Value(), 1e-3);
+					Assert.AreEqual(21.835, genericElectric.AverageCurrentDemandWithoutBaseLoad.Value(), 1e-3);
 
-			Assert.AreEqual(null, genericElectric.ResultCardIdle);
-			Assert.AreEqual( genericElectric.ResultCardIdle, specificElectric.ResultCardIdle);
+					Assert.AreEqual(59.0091, specificElectric.AverageCurrentDemandInclBaseLoad.Value(), 1e-3);
+					Assert.AreEqual(26.6091, specificElectric.AverageCurrentDemandWithoutBaseLoad.Value(), 1e-3);
+					break;
+
+			}
 
-			Assert.AreEqual(null, genericElectric.ResultCardTraction);
-			Assert.AreEqual(genericElectric.ResultCardTraction, specificElectric.ResultCardTraction);
 
-			Assert.AreEqual(null, genericElectric.ResultCardOverrun);
-			Assert.AreEqual(genericElectric.ResultCardOverrun, specificElectric.ResultCardOverrun);
 		}
 
 
@@ -576,7 +585,10 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var specificPneumaticUI = relatedRun.VectoRunDataSpezificBody.BusAuxiliaries.PneumaticUserInputsConfig;
 
 			Assert.IsNotNull(genericPneumaticUI.CompressorMap);
-			Assert.AreEqual(genericPneumaticUI.CompressorMap, specificPneumaticUI.CompressorMap);
+			Assert.AreEqual(genericPneumaticUI.CompressorMap.Technology, specificPneumaticUI.CompressorMap.Technology);
+			Assert.AreEqual(
+				genericPneumaticUI.CompressorMap.GetAveragePowerDemandPerCompressorUnitFlowRate().Value(),
+				specificPneumaticUI.CompressorMap.GetAveragePowerDemandPerCompressorUnitFlowRate().Value());
 
 			Assert.AreEqual(Constants.BusAuxiliaries.PneumaticUserConfig.CompressorGearEfficiency, genericPneumaticUI.CompressorGearEfficiency);
 			Assert.AreEqual(genericPneumaticUI.CompressorGearEfficiency, specificPneumaticUI.CompressorGearEfficiency);
@@ -590,7 +602,7 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			Assert.AreEqual(false, genericPneumaticUI.SmartRegeneration);
 			Assert.AreEqual(genericPneumaticUI.SmartRegeneration, specificPneumaticUI.SmartRegeneration);
 
-			Assert.AreEqual(Constants.BusAuxiliaries.PneumaticUserConfig.DefaultKneelingHeight, genericPneumaticUI.KneelingHeight);
+			Assert.AreEqual(VectoMath.Max(0.SI<Meter>(), 0.120.SI<Meter>() - Constants.BusParameters.EntranceHeight), genericPneumaticUI.KneelingHeight);
 			Assert.AreEqual(VectoMath.Max(0.SI<Meter>(), 0.120.SI<Meter>() - Constants.BusParameters.EntranceHeight), specificPneumaticUI.KneelingHeight);
 
 			Assert.AreEqual(ConsumerTechnology.Electrically, genericPneumaticUI.AirSuspensionControl);
@@ -648,20 +660,44 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var genericBusParam = relatedRun.VectoRunDataGenericBody.BusAuxiliaries.SSMInputs.BusParameters;
 			var specificBusParam = relatedRun.VectoRunDataSpezificBody.BusAuxiliaries.SSMInputs.BusParameters;
 			
-			AssertLoading(genericBusParam.NumberOfPassengers.SI<Kilogram>(), 
-				specificBusParam.NumberOfPassengers.SI<Kilogram>(), currentIndex);
+			AssertPassengerCount(genericBusParam.NumberOfPassengers, 
+				specificBusParam.NumberOfPassengers, currentIndex);
 			
 			Assert.AreEqual(FloorType.HighFloor, genericBusParam.BusFloorType);
 			Assert.AreEqual(FloorType.HighFloor, specificBusParam.BusFloorType);
 
-			Assert.AreEqual(34.2500, genericBusParam.BusWindowSurface.Value());
-			Assert.AreEqual(37.5750, specificBusParam.BusWindowSurface.Value());
+			Assert.AreEqual(23.00, genericBusParam.BusWindowSurface.Value(), 1e-3);
+			Assert.AreEqual(22.745, specificBusParam.BusWindowSurface.Value(), 1e-3);
+
+			Assert.AreEqual(152.865, genericBusParam.BusSurfaceArea.Value(), 1e-3);
+			Assert.AreEqual(146.6130, specificBusParam.BusSurfaceArea.Value(), 1e-3);
 
-			Assert.AreEqual(150.1200, genericBusParam.BusSurfaceArea.Value());
-			Assert.AreEqual(146.6130, specificBusParam.BusSurfaceArea.Value());
+			Assert.AreEqual(81.09, genericBusParam.BusVolume.Value(), 1e-3);
+			Assert.AreEqual(75.4162, specificBusParam.BusVolume.Value(), 1e-3);
+		}
 
-			Assert.AreEqual(48.1950, genericBusParam.BusVolume.Value());
-			Assert.AreEqual(54.2997, specificBusParam.BusVolume.Value());
+		private void AssertPassengerCount(double genericLoading, double specificLoading, int index)
+		{
+			switch (index) {
+				// generic loading values shall match expected values of primary vehicle for IU and CO cycle
+				// see TestPrimaryBusGroup41Test
+				case 0:
+					Assert.AreEqual(25.2352, genericLoading, 1e-4);
+					Assert.AreEqual(24.8537, specificLoading, 1e-4);
+					break;
+				case 1:
+					Assert.AreEqual(61.588, genericLoading, 1e-4);
+					Assert.AreEqual(31, specificLoading, 1e-0);
+					break;
+				case 2:
+					Assert.AreEqual(16.4224, genericLoading, 1e-2);
+					Assert.AreEqual(16.1796, specificLoading, 1e-4);
+					break;
+				case 3:
+					Assert.AreEqual(39.556, genericLoading, 1e-2);
+					Assert.AreEqual(31, specificLoading, 1e-0);
+					break;
+			}
 		}
 
 		#endregion
@@ -673,11 +709,11 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var genericTechnolgyBenefit = relatedRun.VectoRunDataGenericBody.BusAuxiliaries.SSMInputs.Technologies;
 			var specificTechnolgyBenefit = relatedRun.VectoRunDataSpezificBody.BusAuxiliaries.SSMInputs.Technologies;
 
-			Assert.AreEqual(0.08, genericTechnolgyBenefit.CValueVariation);
-			Assert.AreEqual(0.06, genericTechnolgyBenefit.HValueVariation);
-			Assert.AreEqual(0.08, genericTechnolgyBenefit.VCValueVariation);
-			Assert.AreEqual(0.06, genericTechnolgyBenefit.VHValueVariation);
-			Assert.AreEqual(0.04, genericTechnolgyBenefit.VVValueVariation);
+			Assert.AreEqual(0.0, genericTechnolgyBenefit.CValueVariation);
+			Assert.AreEqual(0.02, genericTechnolgyBenefit.HValueVariation);
+			Assert.AreEqual(0.0, genericTechnolgyBenefit.VCValueVariation);
+			Assert.AreEqual(0.02, genericTechnolgyBenefit.VHValueVariation);
+			Assert.AreEqual(0.0, genericTechnolgyBenefit.VVValueVariation);
 
 			Assert.AreEqual(0.08, specificTechnolgyBenefit.CValueVariation);
 			Assert.AreEqual(0.08, specificTechnolgyBenefit.HValueVariation);
@@ -748,8 +784,8 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			var genericSSMInput = (SSMInputs) relatedRun.VectoRunDataGenericBody.BusAuxiliaries.SSMInputs;
 			var specificSSMInput = (SSMInputs)relatedRun.VectoRunDataSpezificBody.BusAuxiliaries.SSMInputs;
 
-			AssertLoading(genericSSMInput.NumberOfPassengers.SI<Kilogram>(),
-				specificSSMInput.NumberOfPassengers.SI<Kilogram>(), currentIndex);
+			AssertPassengerCount(genericSSMInput.NumberOfPassengers,
+				specificSSMInput.NumberOfPassengers, currentIndex);
 
 			AssertHVACMaxCoolingPower(genericSSMInput.HVACMaxCoolingPower.Value(),
 				specificSSMInput.HVACMaxCoolingPower.Value(), currentIndex);
@@ -782,13 +818,13 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 			switch (currentIndex) {
 				case 0:
 				case 1://Interurban
-					Assert.AreEqual(28302.3750, genericValue);
-					Assert.AreEqual(33507.3425, specificValue);
+					Assert.AreEqual(31381.5, genericValue, 1e-3);
+					Assert.AreEqual(31395.6875, specificValue, 1e-3);
 					break;
 				case 2:
 				case 3://Coach
-					Assert.AreEqual(42260.875, genericValue);
-					Assert.AreEqual(48797.2525, specificValue);
+					Assert.AreEqual(47099.5, genericValue, 1e-3);
+					Assert.AreEqual(45478.9375, specificValue, 1e-3);
 					break;
 			}
 		}
@@ -800,12 +836,12 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus
 				case 0:
 				case 1://Interurban
 					Assert.AreEqual(3.5, genericValue);
-					Assert.AreEqual(3.559554528, specificValue, 1e-9);
+					Assert.AreEqual(3.55885197, specificValue, 1e-6);
 					break;
 				case 2:
 				case 3://Coach
 					Assert.AreEqual(3.5, genericValue);
-					Assert.AreEqual(3.564261972, specificValue, 1e-9);
+					Assert.AreEqual(3.5638433, specificValue, 1e-6);
 					break;
 			}
 		}