From c79895245ba821a5adc0c0e67b34b368a398b159 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Mon, 27 Feb 2017 13:45:01 +0100
Subject: [PATCH] adapt testcases to changed signature, make things compile

---
 .../Simulation/Impl/PowertrainBuilder.cs      | 24 ++++----
 .../VectoCoreTest/Integration/ATPowerTrain.cs |  8 ++-
 .../Integration/CoachAdvancedAuxPowertrain.cs |  9 ++-
 .../Integration/CoachPowerTrain.cs            |  9 ++-
 .../SimulationRuns/FullPowertrain.cs          | 27 ++++++++-
 .../Integration/Truck40tPowerTrain.cs         | 13 ++++-
 .../Models/Simulation/PwheelModeTests.cs      |  7 +--
 .../SimulationComponent/ATGearboxTest.cs      |  2 +-
 .../GearboxShiftLossesTest.cs                 |  2 +-
 .../Models/SimulationComponent/GearboxTest.cs | 57 +++++++++++++------
 10 files changed, 114 insertions(+), 44 deletions(-)

diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
index 0d98c2eda0..bae04763d9 100644
--- a/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
+++ b/VectoCore/VectoCore/Models/Simulation/Impl/PowertrainBuilder.cs
@@ -107,7 +107,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			}
 
 			var container = new VehicleContainer(ExecutionMode.Engineering, _modData, _sumWriter) { RunData = data };
-			var gearbox = new CycleGearbox(container, data.GearboxData, data.EngineData.Inertia);
+			var gearbox = new CycleGearbox(container, data);
 
 			// PWheelCycle --> AxleGear --> CycleClutch --> Engine <-- Aux
 			var powertrain = new PWheelCycle(container, data.Cycle, data.AxleGearData.AxleGear.Ratio, data.VehicleData,
@@ -142,7 +142,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, data.AxleGearData))
 				.AddComponent(data.AngledriveData != null ? new Angledrive(container, data.AngledriveData) : null)
-				.AddComponent(GetGearbox(container, data.GearboxData, data.EngineData.Inertia), data.Retarder, container);
+				.AddComponent(GetGearbox(container, data), data.Retarder, container);
 			if (data.GearboxData.Type.ManualTransmission()) {
 				powertrain = powertrain.AddComponent(new Clutch(container, data.EngineData));
 			}
@@ -173,7 +173,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, data.AxleGearData))
 				.AddComponent(data.AngledriveData != null ? new Angledrive(container, data.AngledriveData) : null)
-				.AddComponent(new CycleGearbox(container, data.GearboxData, data.EngineData.Inertia));
+				.AddComponent(new CycleGearbox(container, data));
 			if (data.GearboxData.Type.ManualTransmission()) {
 				powertrain = powertrain.AddComponent(new Clutch(container, data.EngineData));
 			}
@@ -202,7 +202,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, data.AxleGearData))
 				.AddComponent(data.AngledriveData != null ? new Angledrive(container, data.AngledriveData) : null)
-				.AddComponent(GetGearbox(container, data.GearboxData, data.EngineData.Inertia), data.Retarder, container);
+				.AddComponent(GetGearbox(container, data), data.Retarder, container);
 			if (data.GearboxData.Type.ManualTransmission()) {
 				powertrain = powertrain.AddComponent(new Clutch(container, data.EngineData));
 			}
@@ -277,24 +277,24 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl
 			return aux;
 		}
 
-		private static IGearbox GetGearbox(IVehicleContainer container, GearboxData data, KilogramSquareMeter engineInertia)
+		private static IGearbox GetGearbox(IVehicleContainer container, VectoRunData runData)
 		{
 			IShiftStrategy strategy;
-			switch (data.Type) {
+			switch (runData.GearboxData.Type) {
 				case GearboxType.AMT:
-					strategy = new AMTShiftStrategy(data, container);
+					strategy = new AMTShiftStrategy(runData, container);
 					break;
 				case GearboxType.MT:
-					strategy = new MTShiftStrategy(data, container);
+					strategy = new MTShiftStrategy(runData, container);
 					break;
 				case GearboxType.ATPowerSplit:
 				case GearboxType.ATSerial:
-					strategy = new ATShiftStrategy(data, container);
-					return new ATGearbox(container, data, strategy, engineInertia);
+					strategy = new ATShiftStrategy(runData.GearboxData, container);
+					return new ATGearbox(container, strategy, runData);
 				default:
-					throw new ArgumentOutOfRangeException("Unknown Gearbox Type", data.Type.ToString());
+					throw new ArgumentOutOfRangeException("Unknown Gearbox Type", runData.GearboxData.Type.ToString());
 			}
-			return new Gearbox(container, data, strategy, engineInertia);
+			return new Gearbox(container, strategy, runData);
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
index 4ffa58902e..3ac4e75375 100644
--- a/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/ATPowerTrain.cs
@@ -97,13 +97,19 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			var engine = new CombustionEngine(container, engineData);
 
+			var runData = new VectoRunData() {
+				AxleGearData = axleGearData,
+				VehicleData = vehicleData,
+				GearboxData = gearboxData,
+				EngineData = engineData
+			};
 			var tmp = cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
 				.AddComponent(new Vehicle(container, vehicleData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
 				.AddComponent(new DummyRetarder(container))
-				.AddComponent(new ATGearbox(container, gearboxData, new ATShiftStrategy(gearboxData, container), engineData.Inertia))
+				.AddComponent(new ATGearbox(container, new ATShiftStrategy(gearboxData, container), runData))
 				.AddComponent(engine);
 
 			var aux = new EngineAuxiliary(container);
diff --git a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
index 7053d13658..5b98b61d42 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachAdvancedAuxPowertrain.cs
@@ -89,13 +89,20 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			var engine = new CombustionEngine(container, engineData);
 
+			var runData = new VectoRunData() {
+				AxleGearData = axleGearData,
+				VehicleData = vehicleData,
+				GearboxData = gearboxData,
+				EngineData = engineData
+			};
+
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
 				.AddComponent(new Vehicle(container, vehicleData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
 				.AddComponent(new DummyRetarder(container))
-				.AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container), engineData.Inertia))
+				.AddComponent(new Gearbox(container, new AMTShiftStrategy(runData, container), runData))
 				.AddComponent(new Clutch(container, engineData))
 				.AddComponent(engine);
 
diff --git a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
index c8883937b9..f956e14a71 100644
--- a/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/CoachPowerTrain.cs
@@ -94,13 +94,20 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData);
 
+			var runData = new VectoRunData() {
+				VehicleData = vehicleData,
+				AxleGearData = axleGearData,
+				GearboxData = gearboxData,
+				EngineData = engineData
+			};
+
 			var tmp = cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
 				.AddComponent(new Vehicle(container, vehicleData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
 				.AddComponent(new DummyRetarder(container))
-				.AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container), engineData.Inertia))
+				.AddComponent(new Gearbox(container, new AMTShiftStrategy(runData, container), runData))
 				.AddComponent(clutch)
 				.AddComponent(engine);
 
diff --git a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
index 2fa438bb53..fbd9ef0361 100644
--- a/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/SimulationRuns/FullPowertrain.cs
@@ -84,12 +84,19 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			var cyclePort = cycle.OutPort();
 
+			var runData = new VectoRunData() {
+				EngineData = engineData,
+				AxleGearData = axleGearData,
+				GearboxData = gearboxData,
+				VehicleData = vehicleData
+			};
+
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
 				.AddComponent(new Vehicle(container, vehicleData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
-				.AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container), engineData.Inertia))
+				.AddComponent(new Gearbox(container, new AMTShiftStrategy(runData, container), runData))
 				.AddComponent(new Clutch(container, engineData))
 				.AddComponent(new CombustionEngine(container, engineData));
 
@@ -139,13 +146,20 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 
+			var runData = new VectoRunData() {
+				EngineData = engineData,
+				VehicleData = vehicleData,
+				AxleGearData = axleGearData,
+				GearboxData = gearboxData
+			};
+
 			var cyclePort = cycle.OutPort();
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
 				.AddComponent(new Vehicle(container, vehicleData))
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
-				.AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container), engineData.Inertia))
+				.AddComponent(new Gearbox(container, new AMTShiftStrategy(runData, container), runData))
 				.AddComponent(new Clutch(container, engineData))
 				.AddComponent(new CombustionEngine(container, engineData));
 
@@ -208,6 +222,13 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 			var vehicleData = CreateVehicleData(3300.SI<Kilogram>());
 			var driverData = CreateDriverData(AccelerationFile);
 
+			var runData = new VectoRunData() {
+				EngineData = engineData,
+				VehicleData = vehicleData,
+				AxleGearData = axleGearData,
+				GearboxData = gearboxData
+			};
+
 			var cycle = new DistanceBasedDrivingCycle(container, cycleData);
 			var cyclePort = cycle.OutPort();
 			cycle.AddComponent(new Driver(container, driverData, new DefaultDriverStrategy()))
@@ -215,7 +236,7 @@ namespace TUGraz.VectoCore.Tests.Integration.SimulationRuns
 				.AddComponent(new Wheels(container, vehicleData.DynamicTyreRadius, vehicleData.WheelsInertia))
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
-				.AddComponent(new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container), engineData.Inertia))
+				.AddComponent(new Gearbox(container, new AMTShiftStrategy(runData, container), runData))
 				.AddComponent(new Clutch(container, engineData))
 				.AddComponent(new CombustionEngine(container, engineData));
 
diff --git a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
index e138525b8b..66f4ed1332 100644
--- a/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
+++ b/VectoCore/VectoCoreTest/Integration/Truck40tPowerTrain.cs
@@ -100,13 +100,20 @@ namespace TUGraz.VectoCore.Tests.Integration
 			var engine = new CombustionEngine(container, engineData);
 			var clutch = new Clutch(container, engineData);
 
+			var runData = new VectoRunData() {
+				EngineData = engineData,
+				VehicleData = vehicleData,
+				AxleGearData = axleGearData,
+				GearboxData = gearboxData
+			};
+
 			IShiftStrategy gbxStrategy;
 			switch (gbxType) {
 				case GearboxType.MT:
-					gbxStrategy = new MTShiftStrategy(gearboxData, container);
+					gbxStrategy = new MTShiftStrategy(runData, container);
 					break;
 				case GearboxType.AMT:
-					gbxStrategy = new AMTShiftStrategy(gearboxData, container);
+					gbxStrategy = new AMTShiftStrategy(runData, container);
 					break;
 				default:
 					throw new ArgumentOutOfRangeException("gbxType", gbxType, null);
@@ -118,7 +125,7 @@ namespace TUGraz.VectoCore.Tests.Integration
 				.AddComponent(new Brakes(container))
 				.AddComponent(new AxleGear(container, axleGearData))
 				.AddComponent(new DummyRetarder(container))
-				.AddComponent(new Gearbox(container, gearboxData, gbxStrategy, engineData.Inertia))
+				.AddComponent(new Gearbox(container, gbxStrategy, runData))
 				.AddComponent(clutch)
 				.AddComponent(engine);
 
diff --git a/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs b/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
index c5cebefa70..ed6eb4401f 100644
--- a/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
+++ b/VectoCore/VectoCoreTest/Models/Simulation/PwheelModeTests.cs
@@ -68,11 +68,8 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 			var cycleFile = new MemoryStream(Encoding.UTF8.GetBytes(inputData));
 			var drivingCycle = DrivingCycleDataReader.ReadFromStream(cycleFile, CycleType.PWheel, "", false);
-
-			var gearbox = new CycleGearbox(container,
-				new GearboxData {
-					Gears = new Dictionary<uint, GearData> { { 1, new GearData { Ratio = 2.0 } }, { 2, new GearData { Ratio = 3.5 } } }
-				}, 0.SI<KilogramSquareMeter>());
+			
+			var gearbox = new CycleGearbox(container, new VectoRunData());
 
 			var cycle = new PWheelCycle(container, drivingCycle, 2.3, null,
 				gearbox.ModelData.Gears.ToDictionary(g => g.Key, g => g.Value.Ratio));
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs
index 13259dc8c7..8395a9ba1f 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/ATGearboxTest.cs
@@ -72,7 +72,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var engineData = MockSimulationDataFactory.CreateEngineDataFromFile(EngineDataFile);
 			vehicleContainer.Engine = new CombustionEngine(vehicleContainer,engineData);
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile, false);
-			var gearbox = new ATGearbox(vehicleContainer, gearboxData, new ATShiftStrategy(gearboxData, vehicleContainer), engineData.Inertia);
+			var gearbox = new ATGearbox(vehicleContainer, new ATShiftStrategy(gearboxData, vehicleContainer), null);
 
 			vehicleContainer.VehicleSpeed = vehicleSpeed.KMPHtoMeterPerSecond();
 
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxShiftLossesTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxShiftLossesTest.cs
index 5970e38f51..b5c4f9e9e4 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxShiftLossesTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxShiftLossesTest.cs
@@ -109,7 +109,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			var engine = new CombustionEngine(container,
 				MockSimulationDataFactory.CreateEngineDataFromFile(ATPowerTrain.EngineFile));
 			container.Engine = engine;
-			var gbx = new ATGearbox(container, gearboxData, new ATShiftStrategy(gearboxData, container), engineInertia);
+			var gbx = new ATGearbox(container, new ATShiftStrategy(gearboxData, container), null);
 			gbx.Connect(engine);
 			gbx.IdleController = new MockIdleController();
 
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs
index 02fa155a51..271c63dbbd 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs
@@ -40,6 +40,7 @@ using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.InputData.Reader.ComponentData;
 using TUGraz.VectoCore.Models.Connector.Ports.Impl;
 using TUGraz.VectoCore.Models.Declaration;
+using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.DataBus;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
@@ -198,8 +199,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(gbxFile, engineFile);
 			var container = new VehicleContainer(ExecutionMode.Engineering);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container), runData);
 			var driver = new MockDriver(container);
 			var vehicle = new MockVehicle(container) { MyVehicleSpeed = 0.KMPHtoMeterPerSecond() };
 
@@ -225,6 +226,25 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			gearbox.CommitSimulationStep(modData);
 		}
 
+		private static VectoRunData GetDummyRunData(GearboxData gearboxData)
+		{
+			return new VectoRunData() {
+				VehicleData = new VehicleData() {
+					DynamicTyreRadius = 0.492.SI<Meter>()
+				},
+				AxleGearData = new AxleGearData() {
+					AxleGear = new GearData() {
+						Ratio = 2.64
+					}
+				},
+				EngineData = new CombustionEngineData() {
+					IdleSpeed = 600.RPMtoRad(),
+					Inertia = 0.SI<KilogramSquareMeter>()
+				},
+				GearboxData = gearboxData
+			};
+		}
+
 		[TestCase(GearboxDataFile, EngineDataFile, 6.38, 2600, 1600, 2658.1060109),
 		TestCase(GearboxDataFile, EngineDataFile, 6.38, -2600, 1000, -2543.4076)]
 		public void Gearbox_LossMapExtrapolation_Declaration(string gbxFile, string engineFile, double ratio, double torque,
@@ -232,8 +252,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(gbxFile, engineFile);
 			var container = new VehicleContainer(ExecutionMode.Declaration);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container), runData);
 			var driver = new MockDriver(container);
 			var vehicle = new MockVehicle(container) { MyVehicleSpeed = 0.KMPHtoMeterPerSecond() };
 
@@ -266,8 +286,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile);
 			var container = new VehicleContainer(executionMode: ExecutionMode.Engineering);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container), runData);
 			var driver = new MockDriver(container);
 			var vehicle = new MockVehicle(container) { MyVehicleSpeed = 0.KMPHtoMeterPerSecond() };
 
@@ -301,8 +321,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile);
 			var container = new VehicleContainer(ExecutionMode.Engineering);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container),
+				runData);
 			var driver = new MockDriver(container);
 			var vehicle = new MockVehicle(container) { MyVehicleSpeed = 0.KMPHtoMeterPerSecond() };
 
@@ -333,8 +354,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var container = new VehicleContainer(ExecutionMode.Engineering);
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container),
+				runData);
 			var vehicle = new MockVehicle(container) { MyVehicleSpeed = 0.KMPHtoMeterPerSecond() };
 			var driver = new MockDriver(container);
 
@@ -396,8 +418,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var container = new VehicleContainer(ExecutionMode.Engineering);
 			var gearboxData = CreateGearboxData();
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container),
+				runData);
 
 			var driver = new MockDriver(container);
 			var vehicle = new MockVehicle(container) { MyVehicleSpeed = 0.KMPHtoMeterPerSecond() };
@@ -445,8 +468,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 		{
 			var container = new VehicleContainer(ExecutionMode.Engineering);
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container),
+				runData);
 
 			var driver = new MockDriver(container);
 			var port = new MockTnOutPort() { EngineN95hSpeed = 2000.RPMtoRad() };
@@ -497,8 +521,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 				TotalMass = 19000.SI<Kilogram>()
 			};
 			var gearboxData = MockSimulationDataFactory.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile);
-			var gearbox = new Gearbox(container, gearboxData, new AMTShiftStrategy(gearboxData, container),
-				0.SI<KilogramSquareMeter>());
+			var runData = GetDummyRunData(gearboxData);
+			var gearbox = new Gearbox(container, new AMTShiftStrategy(runData, container),
+				runData);
 			var port = new MockTnOutPort() { EngineN95hSpeed = 2000.RPMtoRad() };
 			container.Engine = port;
 			gearbox.InPort().Connect(port);
-- 
GitLab