diff --git a/VectoConsole/Properties/Version.cs b/VectoConsole/Properties/Version.cs
index 1e3461f92616c511c4821ab414f309d08195a581..156b25260edd612541c4523d13f4550fd0d0a936 100644
--- a/VectoConsole/Properties/Version.cs
+++ b/VectoConsole/Properties/Version.cs
@@ -1,6 +1,6 @@
 using System.Reflection;
 
-// generated on 11.11.2015 13:07:57
+// generated on 11.11.2015 13:31:46
 [assembly: AssemblyVersion("3.0.1.314")]
 [assembly: AssemblyFileVersion("3.0.1.314")]
 
diff --git a/VectoCore/Properties/Version.cs b/VectoCore/Properties/Version.cs
index c4ca35d67c2edc48b62abb0fcef1b6b43ad75077..9680f4689a839af2e8b611743fc6714001d50f13 100644
--- a/VectoCore/Properties/Version.cs
+++ b/VectoCore/Properties/Version.cs
@@ -1,5 +1,5 @@
 using System.Reflection;
-// generated on 11.11.2015 13:07:52
+// generated on 11.11.2015 13:31:44
 [assembly: AssemblyVersion("3.0.1.314")]
 [assembly: AssemblyFileVersion("3.0.1.314")]
 
diff --git a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs
index a13f1fbb0a082de7223527612237621384fa11ea..57d954c2361a39d7ad1a6a0922772eb2c5c1325b 100644
--- a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs
+++ b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs
@@ -4,1066 +4,1085 @@ using TUGraz.VectoCore.Tests.Utils;
 
 namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy
 {
-	[TestClass]
-	public class DriverStrategyTestCoach
-	{
-		[TestInitialize]
-		public void DisableLogging()
-		{
-			//LogManager.DisableLogging();
-			//GraphWriter.Disable();
-		}
+    [TestClass]
+    public class DriverStrategyTestCoach
+    {
+        [TestInitialize]
+        public void DisableLogging()
+        {
+            //LogManager.DisableLogging();
+            //GraphWriter.Disable();
+        }
+
+        [TestMethod]
+        public void TestGraph()
+        {
+            var imgV3 = @"..\..\..\VectoCoreTest\bin\Debug\Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod";
+            var imgv22 =
+                @"..\..\..\VectoCoreTest\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Dec_Increasing_Slope.vmod";
+
+            GraphWriter.Write(imgV3, imgv22);
+        }
+
+
+        [TestMethod]
+        public void TestSingleGraph()
+        {
+            var imgV3 = @"..\..\..\VectoCoreTest\bin\Debug\Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod";
+
+            GraphWriter.Write(imgV3);
+        }
+
+        #region Accelerate
+
+        [TestMethod]
+        public void Coach_Accelerate_20_60_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_Level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_20_60_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphilll_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_uphill_5.vmod");
+        }
+
+
+        [TestMethod]
+        public void Coach_Accelerate_20_60_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_20_60_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_downhill_5.vmod");
+        }
+
+
+        [TestMethod, Ignore]
+        public void Coach_Accelerate_20_60_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_20_60_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_20_60_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_20_60_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_20_60_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_20_60_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_uphill_1()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_1);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_1.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_1.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_1.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_uphill_2()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_2);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_2.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_2.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_2.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_85_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_uphill_10()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_10);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_10.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_10.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_10.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_85_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_stop_0_85_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_stop_0_85_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_stop_0_85_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_stop_0_85_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_stop_0_85_level.vmod");
+        }
+
+
+        [TestMethod]
+        public void Coach_Accelerate_20_22_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_22_uphill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_22_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_22_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_22_uphill_5.vmod");
+        }
+
+        #endregion
+
+        #region Decelerate
+
+        [TestMethod]
+        public void Coach_Decelerate_22_20_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_22_20_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_22_20_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_22_20_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_22_20_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_60_20_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_45_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_45_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_45_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_45_0_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_uphill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_45_0_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_45_0_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_45_0_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_45_0_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_45_0_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_60_20_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_60_20_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_60_20_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_downhill_5.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_60_20_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_60_20_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_60_20_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_downhill_25.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_60_20_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_60_20_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_60_20_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_80_0_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_80_0_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_downhill_5.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_80_0_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_steep_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_80_0_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_80_0_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_80_0_uphill_3()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_3);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_uphill_3.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_uphill_3.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_uphill_3.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_80_0_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_steep_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Decelerate_80_0_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Decelerate_80_0_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_downhill_15.vmod");
+        }
+
+        #endregion
+
+        #region Drive
+
+        [TestMethod]
+        public void Coach_Drive_80_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_80_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_80_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_20_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_20_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_20_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_20_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_20_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_30_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_30_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_50_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_50_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_downhill_15.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Coach_Drive_80_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_80_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_80_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(new[] {
+                // <s>,<v>,<grad>,<stop>
+                "   0,  10, 5,    0",
+                "800,  10, 5,    0",
+            });
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_25);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_10_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_15);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_15.vmod");
+        }
+
+        #endregion
+
+        #region Slope
+
+        [TestMethod]
+        public void Coach_Drive_80_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Increasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_50_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Increasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-		[TestMethod]
-		public void TestGraph()
-		{
-			var imgV3 = @"..\..\..\VectoCoreTest\bin\Debug\Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod";
-			var imgv22 =
-				@"..\..\..\VectoCoreTest\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Dec_Increasing_Slope.vmod";
-
-			GraphWriter.Write(imgV3, imgv22);
-		}
-
-
-         [TestMethod]
-	    public void TestSingleGraph()
-	    {
-	        var imgV3 = @"..\..\..\VectoCoreTest\bin\Debug\Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod";
-			
-			GraphWriter.Write(imgV3);
-	    }
-
-
-
-		#region Accelerate
-
-		[TestMethod]
-		public void Coach_Accelerate_20_60_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_Level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_level.vmod");
+            GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_30_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Increasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_80_Decreasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Decreasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_dec.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_dec.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_Decreasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_50_Decreasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Decreasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_dec.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_dec.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Decreasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_30_Decreasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Decreasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_dec.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_dec.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_Decreasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_80_Dec_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Dec_Increasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_dec-inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_dec-inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_Dec_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_50_Dec_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Dec_Increasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Dec_Increasing_Slope.vmod");
+        }
+
+
+        [TestMethod]
+        public void Coach_Drive_30_Dec_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Dec_Increasing_Slope);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_dec-inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_dec-inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_Dec_Increasing_Slope.vmod");
+        }
+
+        #endregion
+
+        #region Misc
+
+        [TestMethod]
+        public void Coach_DecelerateWhileBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerateWhileBrake_80_0_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_DecelerateWhileBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_AccelerateWhileBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateWhileBrake_80_0_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_AccelerateWhileBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_AccelerateAtBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateAtBrake_80_0_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_AccelerateAtBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_AccelerateAtBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_AccelerateAtBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_AccelerateBeforeBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateBeforeBrake_80_0_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod");
 
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_20_60_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphilll_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_uphill_5.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_20_60_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_downhill_5.vmod");
-		}
-
-
-		[TestMethod, Ignore]
-		public void Coach_Accelerate_20_60_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_20_60_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_20_60_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_uphill_15.vmod");
-		}
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_AccelerateBeforeBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Drive_stop_85_stop_85_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_stop_85_stop_85_level);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Drive_stop_85_stop_85_level.vmod");
 
-		[TestMethod]
-		public void Coach_Accelerate_20_60_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_downhill_15.vmod");
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Drive_stop_85_stop_85_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_stop_85_stop_85_level.vmod");
+        }
+
+        #endregion
 
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_60_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_60_downhill_15.vmod");
-		}
+        #region AccelerateOverspeed
 
-		[TestMethod]
-		public void Coach_Accelerate_0_85_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_uphill_1()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_1);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_1.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_1.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_1.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_uphill_2()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_2);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_2.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_2.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_2.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_uphill_10()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_10);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_10.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_uphill_10.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_uphill_10.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_0_85_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_stop_0_85_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_stop_0_85_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_stop_0_85_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_stop_0_85_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_stop_0_85_level.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_20_22_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_22_uphill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_22_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_20_22_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Accelerate_20_22_uphill_5.vmod");
-		}
-
-		#endregion
-
-		#region Decelerate
-
-		[TestMethod]
-		public void Coach_Decelerate_22_20_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_22_20_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_22_20_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_22_20_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_22_20_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_60_20_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_45_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_level.vmod");
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_45_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_45_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_45_0_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_uphill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_45_0_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_45_0_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_45_0_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_45_0_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_45_0_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_60_20_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_60_20_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_downhill_5.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_60_20_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_60_20_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_downhill_25.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_60_20_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_60_20_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_60_20_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_60_20_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_80_0_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_80_0_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_downhill_5.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_80_0_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_steep_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_80_0_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_80_0_uphill_3()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_3);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_uphill_3.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_uphill_3.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_uphill_3.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_80_0_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_steep_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Decelerate_80_0_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Decelerate_80_0_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Decelerate_80_0_downhill_15.vmod");
-		}
-
-		#endregion
-
-		#region Drive
-
-		[TestMethod]
-		public void Coach_Drive_80_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_80_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_80_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_20_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_20_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_20_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_20_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_20_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_30_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_30_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_50_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_50_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_downhill_15.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Coach_Drive_80_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_80_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_80_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(new[] {
-				// <s>,<v>,<grad>,<stop>
-				"   0,  10, 5,    0",
-				"800,  10, 5,    0",
-			});
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_25);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_10_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_15);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_15.vmod");
-		}
-
-		#endregion
-
-		#region Slope
-
-		[TestMethod]
-		public void Coach_Drive_80_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Increasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_50_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Increasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+        [TestMethod]
+        public void Coach_Accelerate_0_85_downhill_5_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_85_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_downhill_3_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_3);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_85_downhill_3.vmod");
+        }
+
+
+        [TestMethod]
+        public void Coach_Accelerate_0_85_downhill_1_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_1);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_85_downhill_1.vmod");
+        }
+
+
+        [TestMethod]
+        public void Coach_Accelerate_0_60_downhill_5_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_60_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_60_downhill_3_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_3);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_30_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Increasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_60_downhill_3.vmod");
+        }
 
-			GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_80_Decreasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Decreasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_dec.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_dec.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_Decreasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_50_Decreasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Decreasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_dec.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+        [TestMethod]
+        public void Coach_Accelerate_0_60_downhill_1_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_1);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod", true);
 
-			GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_dec.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Decreasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_30_Decreasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Decreasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_dec.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_dec.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_Decreasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_80_Dec_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Dec_Increasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_dec-inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_60_downhill_1.vmod");
+        }
 
-			GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_dec-inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_Dec_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_50_Dec_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Dec_Increasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_Dec_Increasing_Slope.vmod");
-		}
 
+        [TestMethod]
+        public void Coach_Accelerate_0_40_downhill_5_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_5);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod", true);
 
-		[TestMethod]
-		public void Coach_Drive_30_Dec_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Dec_Increasing_Slope);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_dec-inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_dec-inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_Dec_Increasing_Slope.vmod");
-		}
-
-		#endregion
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-		#region Misc
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_40_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Coach_Accelerate_0_40_downhill_3_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_3);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod", true);
 
-		[TestMethod]
-		public void Coach_DecelerateWhileBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerateWhileBrake_80_0_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Coach_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_DecelerateWhileBrake_80_0_level.vmod");
-		}
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_40_downhill_3.vmod");
+        }
 
-		[TestMethod]
-		public void Coach_AccelerateWhileBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateWhileBrake_80_0_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Coach_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_AccelerateWhileBrake_80_0_level.vmod");
-		}
+        [TestMethod]
+        public void Coach_Accelerate_0_40_downhill_1_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_1);
+            var run = CoachPowerTrain.CreateEngineeringRun(cycle,
+                "Coach_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod", true);
 
-		[TestMethod]
-		public void Coach_AccelerateAtBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateAtBrake_80_0_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_AccelerateAtBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Coach_DriverStrategy_AccelerateAtBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_AccelerateAtBrake_80_0_level.vmod");
-		}
+            GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_40_downhill_1.vmod");
+        }
 
-		[TestMethod]
-		public void Coach_AccelerateBeforeBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateBeforeBrake_80_0_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_AccelerateBeforeBrake_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Drive_stop_85_stop_85_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_stop_85_stop_85_level);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_stop_85_stop_85_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Drive_stop_85_stop_85_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_stop_85_stop_85_level.vmod");
-		}
-
-		#endregion
-
-		#region AccelerateOverspeed
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_downhill_5_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_85_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_downhill_3_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_3);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_85_downhill_3.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_0_85_downhill_1_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_1);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_85_downhill_1.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_0_60_downhill_5_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_60_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_60_downhill_3_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_3);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_60_downhill_3.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_0_60_downhill_1_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_1);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_60_downhill_1.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_0_40_downhill_5_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_5);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_40_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Coach_Accelerate_0_40_downhill_3_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_3);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_40_downhill_3.vmod");
-		}
-
-
-		[TestMethod]
-		public void Coach_Accelerate_0_40_downhill_1_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_1);
-			var run = CoachPowerTrain.CreateEngineeringRun(cycle,
-				"Coach_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Coach_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach_Overspeed\24t Coach_Cycle_Accelerate_0_40_downhill_1.vmod");
-		}
-
-		#endregion
-	}
+        #endregion
+    }
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs
index 9ff58535f3e3f6400e3bddcb57bf664903f5ee62..eaa1cbf0f13c8a7d641ea4f3a0e60392c5891f8d 100644
--- a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs
+++ b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs
@@ -5,1164 +5,1204 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy
 {
-	[TestClass]
-	public class DriverStrategyTestTruck
-	{
-		[TestInitialize]
-		public void DisableLogging()
-		{
-			//LogManager.DisableLogging();
-			//GraphWriter.Disable();
-		}
-
-		#region Accelerate
-
-		[TestMethod]
-		public void Truck_Accelerate_20_60_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_Level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_20_60_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphilll_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_uphill_5.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_20_60_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_downhill_5.vmod");
-		}
-
-
-		[TestMethod, Ignore]
-		public void Truck_Accelerate_20_60_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_20_60_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_20_60_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_20_60_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_uphill_1()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_1);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_1.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_1.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_1.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_uphill_2()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_2);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_2.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_2.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_2.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
-			Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_downhill_5.vmod").Run();
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_uphill_10()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_10);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_10.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_10.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_10.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_stop_0_85_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_stop_0_85_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_stop_0_85_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_stop_0_85_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_stop_0_85_level.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_20_22_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_22_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_22_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_22_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_22_uphill_5.vmod");
-		}
-
-		#endregion
-
-		#region Decelerate
-
-		[TestMethod]
-		public void Truck_Decelerate_22_20_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_22_20_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_22_20_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_22_20_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_22_20_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_60_20_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_45_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_45_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_45_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_45_0_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_45_0_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_45_0_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_45_0_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_45_0_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_45_0_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_60_20_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_60_20_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_downhill_5.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_60_20_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_60_20_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_downhill_25.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_60_20_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_60_20_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_80_0_uphill_3()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_3);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_uphill_3.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_uphill_3.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_uphill_3.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_80_0_SlopeChangeDuringCoast()
-		{
-			var data = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"  0,  60, -1.15,     0",
-				" 70,  60, -1.85,     0",
-				"300,   0, -1.85,     2",
-			};
-
-			var cycle = SimpleDrivingCycles.CreateCycleData(data);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Decelerate_80_0_SlopeChangeDuringCoast.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod, Ignore]
-		public void Truck_Decelerate_80_0_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_80_0_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_downhill_5.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_80_0_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_steep_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_80_0_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_downhill_25.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Decelerate_80_0_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_steep_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_80_0_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_20_0_downhill_2()
-		{
-			var cycleData = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"   0,  20, -1.8,  0",
-				"2052,  0,  -1.8,  2"
-			};
-			var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Decelerate_20_0_downhill_2_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			//GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod",
-			//	@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_20_0_downhill_2_RefLoad.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Decelerate_55_43_0_downhill_RefLoad()
-		{
-			var cycleData = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"   0,  55.2, -0.6,  0",
-				" 500,  43.6, -0.6,  0",
-				" 510,  43.6, -0.3,  0",
-				" 623,   0, -0.2,  4"
-			};
-			var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_Decelerate_55_43_0_downhill_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		#endregion
-
-		#region Drive
-
-		[TestMethod]
-		public void Truck_Drive_80_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_80_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_80_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_20_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_20_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_20_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_20_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_20_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_30_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_30_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_50_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_50_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_downhill_15.vmod");
-		}
-
-		[TestMethod, Ignore]
-		public void Truck_Drive_80_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_80_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_80_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_uphill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_uphill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_uphill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_uphill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_downhill_5()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_5.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_downhill_5.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_downhill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_downhill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_downhill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_uphill_25()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_25);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_25.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_uphill_25.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_uphill_25.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_downhill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_downhill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_downhill_15.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_10_uphill_15()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_15);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_15.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_10_uphill_15.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_uphill_15.vmod");
-		}
-
-		#endregion
-
-		#region Slope
-
-		[TestMethod]
-		public void Truck_Drive_80_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Increasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_50_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Increasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
+    [TestClass]
+    public class DriverStrategyTestTruck
+    {
+        [TestInitialize]
+        public void DisableLogging()
+        {
+            //LogManager.DisableLogging();
+            //GraphWriter.Disable();
+        }
+
+        #region Accelerate
+
+        [TestMethod]
+        public void Truck_Accelerate_20_60_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_Level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_20_60_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphilll_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_60_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_uphill_5.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_20_60_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_60_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_downhill_5.vmod");
+        }
+
+
+        [TestMethod, Ignore]
+        public void Truck_Accelerate_20_60_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_60_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_20_60_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_60_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_20_60_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_60_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_20_60_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_60_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_60_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_60_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_uphill_1()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_1);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_uphill_1.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_1.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_1.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_uphill_2()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_2);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_uphill_2.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_2.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_2.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
+            Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_downhill_5.vmod").Run();
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_uphill_10()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_10);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_uphill_10.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_uphill_10.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_uphill_10.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_stop_0_85_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_stop_0_85_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_stop_0_85_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_stop_0_85_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_stop_0_85_level.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_20_22_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_22_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_20_22_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_20_22_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Accelerate_20_22_uphill_5.vmod");
+        }
+
+        #endregion
+
+        #region Decelerate
+
+        [TestMethod]
+        public void Truck_Decelerate_22_20_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_22_20_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_22_20_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_22_20_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_22_20_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_60_20_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_45_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_45_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_45_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_45_0_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_45_0_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_45_0_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_45_0_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_45_0_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_45_0_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_45_0_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_45_0_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_60_20_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_60_20_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_60_20_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_60_20_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_downhill_5.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_60_20_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_60_20_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_60_20_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_60_20_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_downhill_25.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_60_20_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_60_20_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_60_20_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_60_20_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_60_20_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_60_20_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_80_0_uphill_3()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_3);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_uphill_3.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_uphill_3.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_uphill_3.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_80_0_SlopeChangeDuringCoast()
+        {
+            var data = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "  0,  60, -1.15,     0",
+                " 70,  60, -1.85,     0",
+                "300,   0, -1.85,     2",
+            };
+
+            var cycle = SimpleDrivingCycles.CreateCycleData(data);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_SlopeChangeDuringCoast.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod, Ignore]
+        public void Truck_Decelerate_80_0_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_80_0_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_downhill_5.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_80_0_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_steep_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_80_0_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_downhill_25.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Decelerate_80_0_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_steep_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_80_0_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_80_0_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_20_0_downhill_2()
+        {
+            var cycleData = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "   0,  20, -1.8,  0",
+                "2052,  0,  -1.8,  2"
+            };
+            var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Decelerate_20_0_downhill_2_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            //GraphWriter.Write("Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod",
+            //	@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Decelerate_20_0_downhill_2_RefLoad.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Decelerate_55_43_0_downhill_RefLoad()
+        {
+            var cycleData = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "   0,  55.2, -0.6,  0",
+                " 500,  43.6, -0.6,  0",
+                " 510,  43.6, -0.3,  0",
+                " 623,   0, -0.2,  4"
+            };
+            var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_Decelerate_55_43_0_downhill_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        #endregion
+
+        #region Drive
+
+        [TestMethod]
+        public void Truck_Drive_80_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_80_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_80_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_20_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_20_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_20_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_20_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_20_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_30_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_30_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_50_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_50_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_downhill_15.vmod");
+        }
+
+        [TestMethod, Ignore]
+        public void Truck_Drive_80_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_80_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_80_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_uphill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_uphill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_uphill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_uphill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_downhill_5()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_5.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_downhill_5.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_downhill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_downhill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_downhill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_uphill_25()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_25);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_25.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_uphill_25.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_uphill_25.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_downhill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_downhill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_downhill_15.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_10_uphill_15()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_15);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_15.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_10_uphill_15.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_10_uphill_15.vmod");
+        }
+
+        #endregion
+
+        #region Slope
+
+        [TestMethod]
+        public void Truck_Drive_80_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Increasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_50_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Increasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
 
-			GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_30_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Increasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_80_Decreasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Decreasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_dec.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_dec.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_Decreasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_50_Decreasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Decreasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_dec.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_dec.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_Decreasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_30_Decreasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Decreasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_dec.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_dec.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_Decreasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_80_Dec_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Dec_Increasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_dec-inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_dec-inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_Dec_Increasing_Slope.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_50_Dec_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Dec_Increasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_dec-inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_dec-inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_Dec_Increasing_Slope.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Drive_30_Dec_Increasing_Slope()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Dec_Increasing_Slope);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_dec-inc.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_dec-inc.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_Dec_Increasing_Slope.vmod");
-		}
-
-		#endregion
-
-		#region Misc
-
-		[TestMethod]
-		public void Truck_DecelerateWhileBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerateWhileBrake_80_0_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_DecelerateWhileBrake_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_AccelerateWhileBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateWhileBrake_80_0_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_AccelerateWhileBrake_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_AccelerateAtBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateAtBrake_80_0_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_AccelerateAtBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_AccelerateAtBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_AccelerateAtBrake_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_AccelerateBeforeBrake_80_0_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateBeforeBrake_80_0_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_AccelerateBeforeBrake_80_0_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Drive_stop_85_stop_85_level()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_stop_85_stop_85_level);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_stop_85_stop_85_level.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Drive_stop_85_stop_85_level.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_stop_85_stop_85_level.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_48_52_beforeStop_lefel()
-		{
-			var data = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"  0,  49.9, -5,     0",
-				"200,  52, -5,     0",
-				"300,   0, -5,     2",
-			};
-
-			var cycle = SimpleDrivingCycles.CreateCycleData(data);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_48_52_beforeStop_level.vmod",
-				7500.SI<Kilogram>(), 19000.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			//GraphWriter.Write("Truck_DriverStrategy_Accelerate_48_52_beforeStop_level.vmod");
-		}
-
-		#endregion
-
-		#region AccelerateOverspeed
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_downhill_5_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_downhill_3_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_3);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_3.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_0_85_downhill_1_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_1);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_1.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_0_60_downhill_5_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_60_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_60_downhill_3_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_3);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_60_downhill_3.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_0_60_downhill_1_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_1);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_60_downhill_1.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_0_40_downhill_5_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_5);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod", true);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_40_downhill_5.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_0_40_downhill_3_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_3);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_40_downhill_3.vmod");
-		}
-
-
-		[TestMethod]
-		public void Truck_Accelerate_0_40_downhill_1_overspeed()
-		{
-			var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_1);
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
-				"Truck_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod", true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-
-			GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod",
-				@"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_40_downhill_1.vmod");
-		}
-
-		[TestMethod]
-		public void Truck_Accelerate_Decelerate_Downhill_overspeed()
-		{
-			var cycleData = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"  0,  60,  0,     0",
-				" 10,  60, -6,     0",
-				"100,  55, -6,     0",
-				"300,  55, -6,     0"
-			};
-			var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
-
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_Decelerate-overspeed.vmod",
-				true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck_SlopeChangeBeforeStop()
-		{
-			var cycleData = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"  0,  60, -1.4,     0",
-				"298,  60, -1.7,     0",
-				"300,   0, -1.7,     4",
-			};
-			var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
-
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_SlopeChangeBeforeStop.vmod");
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck_FrequentSlopeChanges()
-		{
-			var cycleData = new string[] {
-				// <s>,<v>,<grad>,<stop>
-				"  0,  60,  0,     0",
-				" 10,  60, -6,     0",
-				"100,  55, -6,     0",
-				"300,  55, -6,     0"
-			};
-		}
-
-		#endregion
-	}
+            GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_30_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Increasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_80_Decreasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Decreasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_dec.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_dec.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_Decreasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_50_Decreasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Decreasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_dec.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_dec.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_Decreasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_30_Decreasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Decreasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_dec.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_dec.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_Decreasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_80_Dec_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Dec_Increasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_dec-inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_dec-inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_Dec_Increasing_Slope.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_50_Dec_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Dec_Increasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_dec-inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_dec-inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_Dec_Increasing_Slope.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Drive_30_Dec_Increasing_Slope()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Dec_Increasing_Slope);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_dec-inc.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_dec-inc.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_Dec_Increasing_Slope.vmod");
+        }
+
+        #endregion
+
+        #region Misc
+
+        [TestMethod]
+        public void Truck_DecelerateWhileBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerateWhileBrake_80_0_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_DecelerateWhileBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_AccelerateWhileBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateWhileBrake_80_0_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_AccelerateWhileBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_AccelerateAtBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateAtBrake_80_0_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_AccelerateAtBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_AccelerateAtBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_AccelerateAtBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_AccelerateBeforeBrake_80_0_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateBeforeBrake_80_0_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_AccelerateBeforeBrake_80_0_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Drive_stop_85_stop_85_level()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_stop_85_stop_85_level);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Drive_stop_85_stop_85_level.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Drive_stop_85_stop_85_level.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_stop_85_stop_85_level.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_48_52_beforeStop_lefel()
+        {
+            var data = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "  0,  49.9, -5,     0",
+                "200,  52, -5,     0",
+                "300,   0, -5,     2",
+            };
+
+            var cycle = SimpleDrivingCycles.CreateCycleData(data);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_48_52_beforeStop_level.vmod",
+                7500.SI<Kilogram>(), 19000.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            //GraphWriter.Write("Truck_DriverStrategy_Accelerate_48_52_beforeStop_level.vmod");
+        }
+
+        #endregion
+
+        #region AccelerateOverspeed
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_downhill_5_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_5-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_downhill_3_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_3);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_3-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_3.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_0_85_downhill_1_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_1);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_85_downhill_1-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_85_downhill_1.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_0_60_downhill_5_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_60_downhill_5-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_60_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_60_downhill_3_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_3);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_60_downhill_3-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_60_downhill_3.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_0_60_downhill_1_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_60_downhill_1);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_60_downhill_1-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_60_downhill_1.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_0_40_downhill_5_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_5);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_40_downhill_5-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_40_downhill_5.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_0_40_downhill_3_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_3);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_40_downhill_3-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_40_downhill_3.vmod");
+        }
+
+
+        [TestMethod]
+        public void Truck_Accelerate_0_40_downhill_1_overspeed()
+        {
+            var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_40_downhill_1);
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod", true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+
+            GraphWriter.Write("Truck_DriverStrategy_Accelerate_0_40_downhill_1-overspeed.vmod",
+                @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck_Overspeed\40t_Long_Haul_Truck_Cycle_Accelerate_0_40_downhill_1.vmod");
+        }
+
+        [TestMethod]
+        public void Truck_Accelerate_Decelerate_Downhill_overspeed()
+        {
+            var cycleData = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "  0,  60,  0,     0",
+                " 10,  60, -6,     0",
+                "100,  55, -6,     0",
+                "300,  55, -6,     0"
+            };
+            var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
+
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle,
+                "Truck_DriverStrategy_Accelerate_Decelerate-overspeed.vmod",
+                true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck_SlopeChangeBeforeStop()
+        {
+            var cycleData = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "  0,  60, -1.4,     0",
+                "298,  60, -1.7,     0",
+                "300,   0, -1.7,     4",
+            };
+            var cycle = SimpleDrivingCycles.CreateCycleData(cycleData);
+
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_SlopeChangeBeforeStop.vmod");
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck_FrequentSlopeChanges()
+        {
+            var cycleData = new string[] {
+                // <s>,<v>,<grad>,<stop>
+                "  0,  60,  0,     0",
+                " 10,  60, -6,     0",
+                "100,  55, -6,     0",
+                "300,  55, -6,     0"
+            };
+        }
+
+        #endregion
+    }
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Integration/FullCycleDeclarationTest.cs b/VectoCoreTest/Integration/FullCycleDeclarationTest.cs
index 85c32a12b41cb95578fb499ef75fd7e0e7465a35..715558f7e0d59d3e7399f9f58447fac7057613bd 100644
--- a/VectoCoreTest/Integration/FullCycleDeclarationTest.cs
+++ b/VectoCoreTest/Integration/FullCycleDeclarationTest.cs
@@ -13,177 +13,180 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Tests.Integration
 {
-	[TestClass]
-	public class FullCycleDeclarationTest
-	{
-		public const string TruckDeclarationJob = @"TestData\Integration\DeclarationMode\40t Truck\40t_Long_Haul_Truck.vecto";
-
-
-		[TestMethod]
-		public void Truck40t_LongHaulCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("LongHaul");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_LongHaulCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_RegionalDeliveryCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("RegionalDelivery");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_RegionalDeliveryCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>(), true);
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_RegionalDeliveryCycle_RefLoad_Declaration()
-		{
-			var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
-				@"c:\Users\Technik\Downloads\40t Long Haul Truck\40t_Long_Haul_Truck.vecto");
-			factory.WriteModalResults = true;
-			factory.SumWriter = new SummaryFileWriter("Test.vsum");
-			var runs = factory.SimulationRuns().ToArray();
-
-			var run = runs[4];
-			run.Run();
-
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-
-		[TestMethod]
-		public void Truck40t_UrbanDeliveryCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("UrbanDelivery");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_UrbanDeliveryCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_MunicipalCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Municipal");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_MunicipalCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_ConstructionCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Construction");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_ConstructionCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_HeavyUrbanCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("HeavyUrban");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_HeavyUrbanCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_SubUrbanCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Suburban");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_SubUrbanCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_InterUrbanCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Interurban");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_InterUrbanCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40t_CoachCycle_RefLoad()
-		{
-			var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Coach");
-			var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_CoachCycle_RefLoad.vmod",
-				7500.SI<Kilogram>(), 12900.SI<Kilogram>());
-
-			run.Run();
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck40tDeclarationTest()
-		{
-			LogManager.DisableLogging();
-
-			var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode, TruckDeclarationJob);
-			factory.WriteModalResults = true;
-			var sumFileName = Path.GetFileNameWithoutExtension(TruckDeclarationJob) + Constants.FileExtensions.SumFile;
-			var sumWriter = new SummaryFileWriter(sumFileName);
-			var jobContainer = new JobContainer(sumWriter);
-			jobContainer.AddRuns(factory);
-
-			jobContainer.Execute();
-			jobContainer.WaitFinished();
-
-			foreach (var run in jobContainer.Runs) {
-				Assert.IsTrue(run.Run.FinishedWithoutErrors);
-			}
-		}
-
-		[TestMethod]
-		public void Truck12t_LongHaulCycle_RefLoad_Declaration()
-		{
-			// TODO: fails due to interpolaion failure in Gear 4
-			var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
-				@"c:\Users\Technik\Downloads\12t Delivery Truck\12t Delivery Truck.vecto");
-			factory.WriteModalResults = true;
-			factory.SumWriter = new SummaryFileWriter("Test.vsum");
-			var runs = factory.SimulationRuns().ToArray();
-
-			var run = runs[1];
-			run.Run();
-
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-
-		[TestMethod]
-		public void Truck12t_UrbanDeliveryCycle_RefLoad_Declaration()
-		{
-			// TODO: fails due to interpolaion failure in Gear 4
-			var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
-				@"c:\Users\Technik\Downloads\12t Delivery Truck\12t Delivery Truck.vecto");
-			factory.WriteModalResults = true;
-			factory.SumWriter = new SummaryFileWriter("Test.vsum");
-			var runs = factory.SimulationRuns().ToArray();
-
-			var run = runs[7];
-			run.Run();
-
-			Assert.IsTrue(run.FinishedWithoutErrors);
-		}
-	}
+    [TestClass]
+    public class FullCycleDeclarationTest
+    {
+        public const string TruckDeclarationJob =
+            @"TestData\Integration\DeclarationMode\40t Truck\40t_Long_Haul_Truck.vecto";
+
+
+        [TestMethod]
+        public void Truck40t_LongHaulCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("LongHaul");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_LongHaulCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_RegionalDeliveryCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("RegionalDelivery");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_RegionalDeliveryCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>(), true);
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+
+        [TestMethod]
+        public void Truck40t_UrbanDeliveryCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("UrbanDelivery");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_UrbanDeliveryCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_MunicipalCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("MunicipalUtility");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_MunicipalCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_ConstructionCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Construction");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_ConstructionCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_HeavyUrbanCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("HeavyUrban");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_HeavyUrbanCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_SubUrbanCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Suburban");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_SubUrbanCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_InterUrbanCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Interurban");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_InterUrbanCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40t_CoachCycle_RefLoad()
+        {
+            var cycle = SimpleDrivingCycles.ReadDeclarationCycle("Coach");
+            var run = Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck40t_CoachCycle_RefLoad.vmod",
+                7500.SI<Kilogram>(), 12900.SI<Kilogram>());
+
+            run.Run();
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod]
+        public void Truck40tDeclarationTest()
+        {
+            LogManager.DisableLogging();
+
+            var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode, TruckDeclarationJob);
+            factory.WriteModalResults = true;
+            var sumFileName = Path.GetFileNameWithoutExtension(TruckDeclarationJob) + Constants.FileExtensions.SumFile;
+            var sumWriter = new SummaryFileWriter(sumFileName);
+            var jobContainer = new JobContainer(sumWriter);
+            jobContainer.AddRuns(factory);
+
+            jobContainer.Execute();
+            jobContainer.WaitFinished();
+
+            foreach (var run in jobContainer.Runs) {
+                Assert.IsTrue(run.Run.FinishedWithoutErrors);
+            }
+        }
+
+        [TestMethod, Ignore]
+        public void Truck40t_RegionalDeliveryCycle_RefLoad_Declaration()
+        {
+            var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
+                @"c:\Users\Technik\Downloads\40t Long Haul Truck\40t_Long_Haul_Truck.vecto");
+            factory.WriteModalResults = true;
+            factory.SumWriter = new SummaryFileWriter("Test.vsum");
+            var runs = factory.SimulationRuns().ToArray();
+
+            var run = runs[4];
+            run.Run();
+
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod, Ignore]
+        public void Truck12t_LongHaulCycle_RefLoad_Declaration()
+        {
+            // TODO: fails due to interpolaion failure in Gear 4
+            var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
+                @"c:\Users\Technik\Downloads\12t Delivery Truck\12t Delivery Truck.vecto") {
+                    WriteModalResults = true,
+                    SumWriter = new SummaryFileWriter("Test.vsum")
+                };
+            var runs = factory.SimulationRuns().ToArray();
+
+            var run = runs[1];
+            run.Run();
+
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+
+        [TestMethod, Ignore]
+        public void Truck12t_UrbanDeliveryCycle_RefLoad_Declaration()
+        {
+            // TODO: fails due to interpolaion failure in Gear 4
+            var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
+                @"c:\Users\Technik\Downloads\12t Delivery Truck\12t Delivery Truck.vecto") {
+                    WriteModalResults = true,
+                    SumWriter = new SummaryFileWriter("Test.vsum")
+                };
+            var runs = factory.SimulationRuns().ToArray();
+
+            var run = runs[7];
+            run.Run();
+
+            Assert.IsTrue(run.FinishedWithoutErrors);
+        }
+    }
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCoreTest/Models/Simulation/AuxTests.cs
index 0e75df621772e5662210459a6e23eae95a7ecafe..d3012f7e2526dd47124fc8d54a12e9fa4fc824ba 100644
--- a/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -11,304 +11,313 @@ using TUGraz.VectoCore.Models.SimulationComponent.Impl;
 
 namespace TUGraz.VectoCore.Tests.Models.Simulation
 {
-	[TestClass]
-	public class AuxTests
-	{
-		[TestMethod]
-		public void AuxWriteModFileSumFile()
-		{
-			var dataWriter = new ModalDataWriter(@"AuxWriteModFileSumFile.vmod");
-			dataWriter.AddAuxiliary("FAN");
-			dataWriter.AddAuxiliary("PS");
-			dataWriter.AddAuxiliary("STP");
-			dataWriter.AddAuxiliary("ES");
-			dataWriter.AddAuxiliary("AC");
-
-			var sumWriter = new SummaryFileWriter(@"AuxWriteModFileSumFile.vsum");
-			var container = new VehicleContainer(dataWriter,
-				(writer, mass, loading) => sumWriter.WriteFullPowertrain(dataWriter, "", "", "", null, null));
-			var data = DrivingCycleDataReader.ReadFromFileDistanceBased(@"TestData\Cycles\LongHaul_short.vdri");
-			var mockcycle = new MockDrivingCycle(container, data);
-			var port = new MockTnOutPort();
-
-			var aux = new Auxiliary(container);
-			aux.InPort().Connect(port);
-
-			var hdvClass = VehicleClass.Class5;
-			var mission = MissionType.LongHaul;
-
-			aux.AddConstant("FAN",
-				DeclarationData.Fan.Lookup(MissionType.LongHaul, "Hydraulic driven - Constant displacement pump"));
-			aux.AddConstant("PS", DeclarationData.PneumaticSystem.Lookup(mission, hdvClass));
-			aux.AddConstant("STP",
-				DeclarationData.SteeringPump.Lookup(MissionType.LongHaul, hdvClass, "Variable displacement"));
-			aux.AddConstant("ES", DeclarationData.ElectricSystem.Lookup(mission, null));
-			aux.AddConstant("AC",
-				DeclarationData.HeatingVentilationAirConditioning.Lookup(mission, hdvClass));
-
-			var speed = 1400.RPMtoRad();
-			var torque = 500.SI<NewtonMeter>();
-			var t = 0.SI<Second>();
-			var dt = 1.SI<Second>();
-
-			for (var i = 0; i < 11; i++) {
-				aux.OutPort().Request(t, dt, torque, speed);
-				dataWriter[ModalResultField.dist] = i.SI<Meter>();
-				container.CommitSimulationStep(t, dt);
-				t += dt;
-			}
-
-			container.FinishSimulation();
-			sumWriter.Finish();
-
-			//todo: add aux columns to test
-			var testColumns = new[] { "Paux_FAN", "Paux_STP", "Paux_AC", "Paux_ES", "Paux_PS", "Paux" };
-
-			ResultFileHelper.TestModFile(@"TestData\Results\EngineOnlyCycles\40t_Long_Haul_Truck_Long_Haul_Empty Loading.vmod",
-				@"AuxWriteModFileSumFile.vmod", testColumns, testRowCount: false);
-			ResultFileHelper.TestSumFile(@"TestData\Results\EngineOnlyCycles\40t_Long_Haul_Truck.vsum",
-				@"AuxWriteModFileSumFile.vsum");
-		}
-
-		[TestMethod]
-		public void AuxConstant()
-		{
-			var dataWriter = new MockModalDataWriter();
-			var container = new VehicleContainer(dataWriter);
-			var port = new MockTnOutPort();
-			var aux = new Auxiliary(container);
-			aux.InPort().Connect(port);
-
-			var constPower = 1200.SI<Watt>();
-			aux.AddConstant("CONSTANT", constPower);
-
-			var speed = 2358.RPMtoRad();
-			var torque = 500.SI<NewtonMeter>();
-			var t = 0.SI<Second>();
-			aux.OutPort().Request(t, t, torque, speed);
-			Assert.AreEqual(speed, port.AngularVelocity);
-			var newTorque = torque + constPower / speed;
-			AssertHelper.AreRelativeEqual(port.Torque, newTorque);
-
-			speed = 2358.RPMtoRad();
-			torque = 1500.SI<NewtonMeter>();
-			aux.OutPort().Request(t, t, torque, speed);
-			Assert.AreEqual(speed, port.AngularVelocity);
-			newTorque = torque + constPower / speed;
-			AssertHelper.AreRelativeEqual(port.Torque, newTorque);
-
-			speed = 1500.RPMtoRad();
-			torque = 1500.SI<NewtonMeter>();
-			aux.OutPort().Request(t, t, torque, speed);
-			Assert.AreEqual(speed, port.AngularVelocity);
-			newTorque = torque + constPower / speed;
-			AssertHelper.AreRelativeEqual(port.Torque, newTorque);
-		}
-
-		[TestMethod]
-		public void AuxDirect()
-		{
-			var dataWriter = new MockModalDataWriter();
-			var container = new VehicleContainer(dataWriter);
-			var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
-			var cycle = new MockDrivingCycle(container, data);
-			var port = new MockTnOutPort();
-			var aux = new Auxiliary(container);
-			aux.InPort().Connect(port);
-
-			aux.AddDirect(cycle);
-
-			var speed = 2358.RPMtoRad();
-			var torque = 500.SI<NewtonMeter>();
-
-			var t = 0.SI<Second>();
-
-			var expected = new[] { 6100, 3100, 2300, 4500, 6100 };
-			foreach (var e in expected) {
-				aux.OutPort().Request(t, t, torque, speed);
-				Assert.AreEqual(speed, port.AngularVelocity);
-				var newTorque = torque + e.SI<Watt>() / speed;
-				AssertHelper.AreRelativeEqual(port.Torque, newTorque);
-
-				cycle.CommitSimulationStep(null);
-			}
-		}
-
-		[TestMethod]
-		public void AuxAllCombined()
-		{
-			var dataWriter = new MockModalDataWriter();
-			dataWriter.AddAuxiliary("ALT1");
-			dataWriter.AddAuxiliary("CONSTANT");
-
-			var container = new VehicleContainer(dataWriter);
-			var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
-			// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
-			// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
-			// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
-
-			var cycle = new MockDrivingCycle(container, data);
-			var port = new MockTnOutPort();
-
-			var aux = new Auxiliary(container);
-			aux.InPort().Connect(port);
-
-			var auxData = AuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
-			// ratio = 4.078
-			// efficiency_engine = 0.96
-			// efficiency_supply = 0.98
-
-			aux.AddMapping("ALT1", cycle, auxData);
-			aux.AddDirect(cycle);
-			var constPower = 1200.SI<Watt>();
-			aux.AddConstant("CONSTANT", constPower);
-
-			var speed = 578.22461991.RPMtoRad(); // = 2358 (nAuxiliary) * ratio
-			var torque = 500.SI<NewtonMeter>();
-			var t = 0.SI<Second>();
-			var expected = new[] {
-				1200 + 6100 + 72.9166666666667, // = 1000 * 0.07 (nAuxiliary=2358 and psupply=0) / 0.98 (efficiency_supply)
-				1200 + 3100 + 677.083333333333, // = 1000 * 0.65 (nAuxiliary=2358 and psupply=0.38) / 0.98 (efficiency_supply)
-				1200 + 2300 + 822.916666666667, // = 1000 * 0.79 (nAuxiliary=2358 and psupply=0.49) / 0.98 (efficiency_supply)
-				1200 + 4500 + 1031.25, // = ...
-				1200 + 6100 + 1166.66666666667,
-				1200 + 6100 + 1656.25,
-				1200 + 6100 + 2072.91666666667,
-				1200 + 6100 + 2510.41666666667,
-				1200 + 6100 + 2979.16666666667,
-				1200 + 6100 + 3322.91666666667,
-				1200 + 6100 + 3656.25
-			};
-
-			foreach (var e in expected) {
-				aux.OutPort().Request(t, t, torque, speed);
-				Assert.AreEqual(speed, port.AngularVelocity);
-
-				AssertHelper.AreRelativeEqual(port.Torque, torque + e.SI<Watt>() / speed);
-
-				cycle.CommitSimulationStep(null);
-			}
-		}
-
-		[TestMethod]
-		public void AuxMapping()
-		{
-			var auxId = "ALT1";
-			var dataWriter = new MockModalDataWriter();
-			dataWriter.AddAuxiliary(auxId);
-
-			var container = new VehicleContainer(dataWriter);
-			var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
-			// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
-			// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
-			// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
-
-			var cycle = new MockDrivingCycle(container, data);
-			var port = new MockTnOutPort();
-
-			var aux = new Auxiliary(container);
-			aux.InPort().Connect(port);
-
-			var auxData = AuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
-			// ratio = 4.078
-			// efficiency_engine = 0.96
-			// efficiency_supply = 0.98
-
-			aux.AddMapping(auxId, cycle, auxData);
-
-			var speed = 578.22461991.RPMtoRad(); // = 2358 (nAuxiliary) * ratio
-			var torque = 500.SI<NewtonMeter>();
-			var t = 0.SI<Second>();
-			var expected = new[] {
-				72.9166666666667, // = 1000 * 0.07 (pmech from aux file at nAuxiliary=2358 and psupply=0) / 0.98 (efficiency_supply)
-				677.083333333333, // = 1000 * 0.65 (nAuxiliary=2358 and psupply=0.38) / 0.98
-				822.916666666667, // = 1000 * 0.79 (nAuxiliary=2358 and psupply=0.49) / 0.98
-				1031.25, // = ...
-				1166.66666666667,
-				1656.25,
-				2072.91666666667,
-				2510.41666666667,
-				2979.16666666667,
-				3322.91666666667,
-				3656.25
-			};
-
-			foreach (var e in expected) {
-				aux.OutPort().Request(t, t, torque, speed);
-				Assert.AreEqual(speed, port.AngularVelocity);
-
-				AssertHelper.AreRelativeEqual(port.Torque, torque + e.SI<Watt>() / speed);
-
-				cycle.CommitSimulationStep(null);
-			}
-		}
-
-		[TestMethod]
-		public void AuxColumnMissing()
-		{
-			var container = new VehicleContainer();
-			var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
-			var cycle = new MockDrivingCycle(container, data);
-
-			var aux = new Auxiliary(container);
-			AssertHelper.Exception<VectoException>(() => aux.AddMapping("NONEXISTING_AUX", cycle, null),
-				"driving cycle does not contain column for auxiliary: NONEXISTING_AUX");
-		}
-
-		[TestMethod]
-		public void AuxFileMissing()
-		{
-			AssertHelper.Exception<VectoException>(() => AuxiliaryData.ReadFromFile(@"NOT_EXISTING_AUX_FILE.vaux"),
-				"Auxiliary file not found: NOT_EXISTING_AUX_FILE.vaux");
-		}
-
-		[TestMethod, Ignore]
-		public void AuxReadJobFileDeclarationMode()
-		{
-			var sumWriter = new SummaryFileWriter(@"AuxReadJobFileDeclarationMode.vsum");
-			var jobContainer = new JobContainer(sumWriter);
-
-			var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
-				@"TestData\Jobs\40t_Long_Haul_Truck.vecto");
-
-			jobContainer.AddRuns(runsFactory);
-			jobContainer.Execute();
-
-			ResultFileHelper.TestSumFile(@"TestData\Results\Declaration\40t_Long_Haul_Truck.vsum",
-				@"AuxReadJobFileDeclarationMode.vsum");
-		}
-
-		[TestMethod, Ignore]
-		public void AuxReadJobFileEngineeringMode()
-		{
-			var sumWriter = new SummaryFileWriter(@"AuxReadJobFileEngineeringMode.vsum");
-			var jobContainer = new JobContainer(sumWriter);
-
-			var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineeringMode, @"TestData\Jobs\24t Coach.vecto");
-
-			jobContainer.AddRuns(runsFactory);
-			jobContainer.Execute();
-
-			ResultFileHelper.TestSumFile(@"TestData\Results\Engineering\24t Coach.vsum", @"AuxReadJobFileEngineeringMode.vsum");
-
-			ResultFileHelper.TestModFile(
-				@"TestData\Results\Engineering\24t Coach_Coach_24t_xshort.vmod",
-				@"TestData\Jobs\24t Coach_Coach_24t_xshort.vmod");
-			Assert.Inconclusive();
-		}
-
-		[TestMethod]
-		public void AuxDeclarationWrongConfiguration()
-		{
-			// test what happens if there was a wrong auxiliary configuration in declaration mode
-			Assert.Inconclusive();
-		}
-
-		[TestMethod]
-		public void AuxCycleAdditionalFieldMissing()
-		{
-			// test the case when the Padd field is missing (no direct auxiliary)
-			Assert.Inconclusive();
-		}
-	}
+    [TestClass]
+    public class AuxTests
+    {
+        [TestMethod]
+        public void AuxWriteModFileSumFile()
+        {
+            var dataWriter = new ModalDataWriter(@"AuxWriteModFileSumFile.vmod");
+            dataWriter.AddAuxiliary("FAN");
+            dataWriter.AddAuxiliary("PS");
+            dataWriter.AddAuxiliary("STP");
+            dataWriter.AddAuxiliary("ES");
+            dataWriter.AddAuxiliary("AC");
+
+            var sumWriter = new SummaryFileWriter(@"AuxWriteModFileSumFile.vsum");
+            var container = new VehicleContainer(dataWriter,
+                (writer, mass, loading) => sumWriter.WriteFullPowertrain(dataWriter, "", "", "", null, null));
+            var data = DrivingCycleDataReader.ReadFromFileDistanceBased(@"TestData\Cycles\LongHaul_short.vdri");
+            var mockcycle = new MockDrivingCycle(container, data);
+            var port = new MockTnOutPort();
+
+            var aux = new Auxiliary(container);
+            aux.InPort().Connect(port);
+
+            var hdvClass = VehicleClass.Class5;
+            var mission = MissionType.LongHaul;
+
+            aux.AddConstant("FAN",
+                DeclarationData.Fan.Lookup(MissionType.LongHaul, "Hydraulic driven - Constant displacement pump"));
+            aux.AddConstant("PS", DeclarationData.PneumaticSystem.Lookup(mission, hdvClass));
+            aux.AddConstant("STP",
+                DeclarationData.SteeringPump.Lookup(MissionType.LongHaul, hdvClass, "Variable displacement"));
+            aux.AddConstant("ES", DeclarationData.ElectricSystem.Lookup(mission, null));
+            aux.AddConstant("AC",
+                DeclarationData.HeatingVentilationAirConditioning.Lookup(mission, hdvClass));
+
+            var speed = 1400.RPMtoRad();
+            var torque = 500.SI<NewtonMeter>();
+            var t = 0.SI<Second>();
+            var dt = 1.SI<Second>();
+
+            for (var i = 0; i < 11; i++) {
+                aux.OutPort().Request(t, dt, torque, speed);
+                dataWriter[ModalResultField.dist] = i.SI<Meter>();
+                dataWriter[ModalResultField.Pe_eng] = 0.SI<Watt>();
+                dataWriter[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
+                container.CommitSimulationStep(t, dt);
+                t += dt;
+            }
+
+            container.FinishSimulation();
+            sumWriter.Finish();
+
+            //todo: add aux columns to test
+            var testColumns = new[] { "Paux_FAN", "Paux_STP", "Paux_AC", "Paux_ES", "Paux_PS", "Paux" };
+
+            ResultFileHelper.TestModFile(
+                @"TestData\Results\EngineOnlyCycles\40t_Long_Haul_Truck_Long_Haul_Empty Loading.vmod",
+                @"AuxWriteModFileSumFile.vmod", testColumns, testRowCount: false);
+            ResultFileHelper.TestSumFile(@"TestData\Results\EngineOnlyCycles\40t_Long_Haul_Truck.vsum",
+                @"AuxWriteModFileSumFile.vsum");
+        }
+
+        [TestMethod]
+        public void AuxConstant()
+        {
+            var dataWriter = new MockModalDataWriter();
+            var container = new VehicleContainer(dataWriter);
+            var port = new MockTnOutPort();
+            var aux = new Auxiliary(container);
+            aux.InPort().Connect(port);
+
+            var constPower = 1200.SI<Watt>();
+            aux.AddConstant("CONSTANT", constPower);
+
+            var speed = 2358.RPMtoRad();
+            var torque = 500.SI<NewtonMeter>();
+            var t = 0.SI<Second>();
+            aux.OutPort().Request(t, t, torque, speed);
+            Assert.AreEqual(speed, port.AngularVelocity);
+            var newTorque = torque + constPower / speed;
+            AssertHelper.AreRelativeEqual(port.Torque, newTorque);
+
+            speed = 2358.RPMtoRad();
+            torque = 1500.SI<NewtonMeter>();
+            aux.OutPort().Request(t, t, torque, speed);
+            Assert.AreEqual(speed, port.AngularVelocity);
+            newTorque = torque + constPower / speed;
+            AssertHelper.AreRelativeEqual(port.Torque, newTorque);
+
+            speed = 1500.RPMtoRad();
+            torque = 1500.SI<NewtonMeter>();
+            aux.OutPort().Request(t, t, torque, speed);
+            Assert.AreEqual(speed, port.AngularVelocity);
+            newTorque = torque + constPower / speed;
+            AssertHelper.AreRelativeEqual(port.Torque, newTorque);
+        }
+
+        [TestMethod]
+        public void AuxDirect()
+        {
+            var dataWriter = new MockModalDataWriter();
+            var container = new VehicleContainer(dataWriter);
+            var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
+            var cycle = new MockDrivingCycle(container, data);
+            var port = new MockTnOutPort();
+            var aux = new Auxiliary(container);
+            aux.InPort().Connect(port);
+
+            aux.AddDirect(cycle);
+
+            var speed = 2358.RPMtoRad();
+            var torque = 500.SI<NewtonMeter>();
+
+            var t = 0.SI<Second>();
+
+            var expected = new[] { 6100, 3100, 2300, 4500, 6100 };
+            foreach (var e in expected) {
+                aux.OutPort().Request(t, t, torque, speed);
+                Assert.AreEqual(speed, port.AngularVelocity);
+                var newTorque = torque + e.SI<Watt>() / speed;
+                AssertHelper.AreRelativeEqual(port.Torque, newTorque);
+
+                cycle.CommitSimulationStep(null);
+            }
+        }
+
+        [TestMethod]
+        public void AuxAllCombined()
+        {
+            var dataWriter = new MockModalDataWriter();
+            dataWriter.AddAuxiliary("ALT1");
+            dataWriter.AddAuxiliary("CONSTANT");
+
+            var container = new VehicleContainer(dataWriter);
+            var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
+            // cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
+            // ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
+            // ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
+
+            var cycle = new MockDrivingCycle(container, data);
+            var port = new MockTnOutPort();
+
+            var aux = new Auxiliary(container);
+            aux.InPort().Connect(port);
+
+            var auxData = AuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
+            // ratio = 4.078
+            // efficiency_engine = 0.96
+            // efficiency_supply = 0.98
+
+            aux.AddMapping("ALT1", cycle, auxData);
+            aux.AddDirect(cycle);
+            var constPower = 1200.SI<Watt>();
+            aux.AddConstant("CONSTANT", constPower);
+
+            var speed = 578.22461991.RPMtoRad(); // = 2358 (nAuxiliary) * ratio
+            var torque = 500.SI<NewtonMeter>();
+            var t = 0.SI<Second>();
+            var expected = new[] {
+                1200 + 6100 + 72.9166666666667,
+                // = 1000 * 0.07 (nAuxiliary=2358 and psupply=0) / 0.98 (efficiency_supply)
+                1200 + 3100 + 677.083333333333,
+                // = 1000 * 0.65 (nAuxiliary=2358 and psupply=0.38) / 0.98 (efficiency_supply)
+                1200 + 2300 + 822.916666666667,
+                // = 1000 * 0.79 (nAuxiliary=2358 and psupply=0.49) / 0.98 (efficiency_supply)
+                1200 + 4500 + 1031.25, // = ...
+                1200 + 6100 + 1166.66666666667,
+                1200 + 6100 + 1656.25,
+                1200 + 6100 + 2072.91666666667,
+                1200 + 6100 + 2510.41666666667,
+                1200 + 6100 + 2979.16666666667,
+                1200 + 6100 + 3322.91666666667,
+                1200 + 6100 + 3656.25
+            };
+
+            foreach (var e in expected) {
+                aux.OutPort().Request(t, t, torque, speed);
+                Assert.AreEqual(speed, port.AngularVelocity);
+
+                AssertHelper.AreRelativeEqual(port.Torque, torque + e.SI<Watt>() / speed);
+
+                cycle.CommitSimulationStep(null);
+            }
+        }
+
+        [TestMethod]
+        public void AuxMapping()
+        {
+            var auxId = "ALT1";
+            var dataWriter = new MockModalDataWriter();
+            dataWriter.AddAuxiliary(auxId);
+
+            var container = new VehicleContainer(dataWriter);
+            var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
+            // cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
+            // ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
+            // ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
+
+            var cycle = new MockDrivingCycle(container, data);
+            var port = new MockTnOutPort();
+
+            var aux = new Auxiliary(container);
+            aux.InPort().Connect(port);
+
+            var auxData = AuxiliaryData.ReadFromFile(@"TestData\Components\24t_Coach_ALT.vaux");
+            // ratio = 4.078
+            // efficiency_engine = 0.96
+            // efficiency_supply = 0.98
+
+            aux.AddMapping(auxId, cycle, auxData);
+
+            var speed = 578.22461991.RPMtoRad(); // = 2358 (nAuxiliary) * ratio
+            var torque = 500.SI<NewtonMeter>();
+            var t = 0.SI<Second>();
+            var expected = new[] {
+                72.9166666666667,
+                // = 1000 * 0.07 (pmech from aux file at nAuxiliary=2358 and psupply=0) / 0.98 (efficiency_supply)
+                677.083333333333, // = 1000 * 0.65 (nAuxiliary=2358 and psupply=0.38) / 0.98
+                822.916666666667, // = 1000 * 0.79 (nAuxiliary=2358 and psupply=0.49) / 0.98
+                1031.25, // = ...
+                1166.66666666667,
+                1656.25,
+                2072.91666666667,
+                2510.41666666667,
+                2979.16666666667,
+                3322.91666666667,
+                3656.25
+            };
+
+            foreach (var e in expected) {
+                aux.OutPort().Request(t, t, torque, speed);
+                Assert.AreEqual(speed, port.AngularVelocity);
+
+                AssertHelper.AreRelativeEqual(port.Torque, torque + e.SI<Watt>() / speed);
+
+                cycle.CommitSimulationStep(null);
+            }
+        }
+
+        [TestMethod]
+        public void AuxColumnMissing()
+        {
+            var container = new VehicleContainer();
+            var data = DrivingCycleDataReader.ReadFromFileTimeBased(@"TestData\Cycles\Coach time based short.vdri");
+            var cycle = new MockDrivingCycle(container, data);
+
+            var aux = new Auxiliary(container);
+            AssertHelper.Exception<VectoException>(() => aux.AddMapping("NONEXISTING_AUX", cycle, null),
+                "driving cycle does not contain column for auxiliary: NONEXISTING_AUX");
+        }
+
+        [TestMethod]
+        public void AuxFileMissing()
+        {
+            AssertHelper.Exception<VectoException>(() => AuxiliaryData.ReadFromFile(@"NOT_EXISTING_AUX_FILE.vaux"),
+                "Auxiliary file not found: NOT_EXISTING_AUX_FILE.vaux");
+        }
+
+        [TestMethod, Ignore]
+        public void AuxReadJobFileDeclarationMode()
+        {
+            var sumWriter = new SummaryFileWriter(@"AuxReadJobFileDeclarationMode.vsum");
+            var jobContainer = new JobContainer(sumWriter);
+
+            var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.DeclarationMode,
+                @"TestData\Jobs\40t_Long_Haul_Truck.vecto");
+
+            jobContainer.AddRuns(runsFactory);
+            jobContainer.Execute();
+
+            ResultFileHelper.TestSumFile(@"TestData\Results\Declaration\40t_Long_Haul_Truck.vsum",
+                @"AuxReadJobFileDeclarationMode.vsum");
+        }
+
+        [TestMethod, Ignore]
+        public void AuxReadJobFileEngineeringMode()
+        {
+            var sumWriter = new SummaryFileWriter(@"AuxReadJobFileEngineeringMode.vsum");
+            var jobContainer = new JobContainer(sumWriter);
+
+            var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineeringMode,
+                @"TestData\Jobs\24t Coach.vecto");
+
+            jobContainer.AddRuns(runsFactory);
+            jobContainer.Execute();
+
+            ResultFileHelper.TestSumFile(@"TestData\Results\Engineering\24t Coach.vsum",
+                @"AuxReadJobFileEngineeringMode.vsum");
+
+            ResultFileHelper.TestModFile(
+                @"TestData\Results\Engineering\24t Coach_Coach_24t_xshort.vmod",
+                @"TestData\Jobs\24t Coach_Coach_24t_xshort.vmod");
+            Assert.Inconclusive();
+        }
+
+        [TestMethod]
+        public void AuxDeclarationWrongConfiguration()
+        {
+            // test what happens if there was a wrong auxiliary configuration in declaration mode
+            Assert.Inconclusive();
+        }
+
+        [TestMethod]
+        public void AuxCycleAdditionalFieldMissing()
+        {
+            // test the case when the Padd field is missing (no direct auxiliary)
+            Assert.Inconclusive();
+        }
+    }
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Models/Simulation/SimulationTests.cs b/VectoCoreTest/Models/Simulation/SimulationTests.cs
index 8201a30ab6d09c60aba786e627e0011b0d1c41bd..a5369cf178aa04da5cc719a2edcb3712a0aeaf4d 100644
--- a/VectoCoreTest/Models/Simulation/SimulationTests.cs
+++ b/VectoCoreTest/Models/Simulation/SimulationTests.cs
@@ -9,103 +9,104 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Tests.Models.Simulation
 {
-	[TestClass]
-	public class SimulationTests
-	{
-		private const string EngineFile = @"TestData\Components\24t Coach.veng";
-		private const string CycleFile = @"TestData\Cycles\Coach Engine Only short.vdri";
-
-		private const string EngineOnlyJob = @"TestData\Jobs\EngineOnlyJob.vecto";
-
-		[TestMethod]
-		public void TestSimulationEngineOnly()
-		{
-			var resultFileName = "TestEngineOnly-result.vmod";
-			var job = CreateRun(resultFileName);
-
-			var container = job.GetContainer();
-
-			Assert.AreEqual(560.RPMtoRad(), container.EngineSpeed);
-			Assert.AreEqual(0U, container.Gear);
-		}
-
-		[TestMethod]
-		public void TestEngineOnly_JobRun()
-		{
-			var actual = @"TestData\Jobs\EngineOnlyJob_Coach Engine Only short.vmod";
-			var expected = @"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnly short.vmod";
-
-			var job = CreateRun(actual);
-			job.Run();
-
-			ResultFileHelper.TestModFile(expected, actual);
-		}
-
-		private class MockSumWriter : SummaryFileWriter
-		{
-			public override void Write(bool isEngineOnly, IModalDataWriter data, string jobFileName, string jobName,
-				string cycleFileName,
-				Kilogram vehicleMass, Kilogram vehicleLoading) {}
-
-			public override void Finish() {}
-		}
-
-
-		[TestMethod]
-		public void TestEngineOnly_SimulatorRun()
-		{
-			var actual = @"TestData\Jobs\EngineOnlyJob_Coach Engine Only short.vmod";
-			var expected = @"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnly short.vmod";
-
-			var run = CreateRun(actual);
-
-			var sim = new JobContainer(new MockSumWriter());
-			sim.AddRun(run);
-			sim.Execute();
-
-			ResultFileHelper.TestModFile(expected, actual);
-		}
-
-		public IVectoRun CreateRun(string resultFileName)
-		{
-			var sumFileName = resultFileName.Substring(0, resultFileName.Length - 5) + Constants.FileExtensions.SumFile;
-
-			var dataWriter = new ModalDataWriter(resultFileName, SimulatorFactory.FactoryMode.EngineOnlyMode);
-			var sumWriter = new SummaryFileWriter(sumFileName);
-
-			var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineOnlyMode, EngineOnlyJob) {
-				SumWriter = sumWriter
-			};
-
-			return factory.SimulationRuns().First();
-		}
-
-		[TestMethod]
-		public void Test_VectoJob()
-		{
-			var sumWriter = new SummaryFileWriter(@"24t Coach.vsum");
-			var jobContainer = new JobContainer(sumWriter);
-
-			var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineOnlyMode,
-				@"TestData\Jobs\24t Coach EngineOnly.vecto");
-
-			jobContainer.AddRuns(runsFactory);
-			jobContainer.Execute();
-
-			jobContainer.WaitFinished();
-
-			ResultFileHelper.TestSumFile(@"TestData\Results\EngineOnlyCycles\24t Coach.vsum", @"24t Coach.vsum");
-
-			ResultFileHelper.TestModFiles(new[] {
-				@"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only1.vmod",
-				@"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only2.vmod",
-				@"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only3.vmod"
-			}, new[] {
-				@"TestData\Jobs\24t Coach EngineOnly_Engine Only1.vmod",
-				@"TestData\Jobs\24t Coach EngineOnly_Engine Only2.vmod",
-				@"TestData\Jobs\24t Coach EngineOnly_Engine Only3.vmod"
-			})
-				;
-		}
-	}
+    [TestClass]
+    public class SimulationTests
+    {
+        private const string EngineFile = @"TestData\Components\24t Coach.veng";
+        private const string CycleFile = @"TestData\Cycles\Coach Engine Only short.vdri";
+
+        private const string EngineOnlyJob = @"TestData\Jobs\EngineOnlyJob.vecto";
+
+        [TestMethod]
+        public void TestSimulationEngineOnly()
+        {
+            var resultFileName = "TestEngineOnly-result.vmod";
+            var job = CreateRun(resultFileName);
+
+            var container = job.GetContainer();
+
+            Assert.AreEqual(560.RPMtoRad(), container.EngineSpeed);
+            Assert.AreEqual(0U, container.Gear);
+        }
+
+        [TestMethod]
+        public void TestEngineOnly_JobRun()
+        {
+            var actual = @"TestData\Jobs\EngineOnlyJob_Coach Engine Only short.vmod";
+            var expected = @"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnly short.vmod";
+
+            var job = CreateRun(actual);
+            job.Run();
+
+            ResultFileHelper.TestModFile(expected, actual);
+        }
+
+        private class MockSumWriter : SummaryFileWriter
+        {
+            public override void Write(bool isEngineOnly, IModalDataWriter data, string jobFileName, string jobName,
+                string cycleFileName,
+                Kilogram vehicleMass, Kilogram vehicleLoading) {}
+
+            public override void Finish() {}
+        }
+
+
+        [TestMethod]
+        public void TestEngineOnly_SimulatorRun()
+        {
+            var actual = @"TestData\Jobs\EngineOnlyJob_Coach Engine Only short.vmod";
+            var expected = @"TestData\Results\EngineOnlyCycles\24tCoach_EngineOnly short.vmod";
+
+            var run = CreateRun(actual);
+
+            var sim = new JobContainer(new MockSumWriter());
+            sim.AddRun(run);
+            sim.Execute();
+            sim.WaitFinished();
+
+            ResultFileHelper.TestModFile(expected, actual);
+        }
+
+        public IVectoRun CreateRun(string resultFileName)
+        {
+            var sumFileName = resultFileName.Substring(0, resultFileName.Length - 5) + Constants.FileExtensions.SumFile;
+
+            var dataWriter = new ModalDataWriter(resultFileName, SimulatorFactory.FactoryMode.EngineOnlyMode);
+            var sumWriter = new SummaryFileWriter(sumFileName);
+
+            var factory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineOnlyMode, EngineOnlyJob) {
+                SumWriter = sumWriter
+            };
+
+            return factory.SimulationRuns().First();
+        }
+
+        [TestMethod]
+        public void Test_VectoJob()
+        {
+            var sumWriter = new SummaryFileWriter(@"24t Coach.vsum");
+            var jobContainer = new JobContainer(sumWriter);
+
+            var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineOnlyMode,
+                @"TestData\Jobs\24t Coach EngineOnly.vecto");
+
+            jobContainer.AddRuns(runsFactory);
+            jobContainer.Execute();
+
+            jobContainer.WaitFinished();
+
+            ResultFileHelper.TestSumFile(@"TestData\Results\EngineOnlyCycles\24t Coach.vsum", @"24t Coach.vsum");
+
+            ResultFileHelper.TestModFiles(new[] {
+                @"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only1.vmod",
+                @"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only2.vmod",
+                @"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only3.vmod"
+            }, new[] {
+                @"TestData\Jobs\24t Coach EngineOnly_Engine Only1.vmod",
+                @"TestData\Jobs\24t Coach EngineOnly_Engine Only2.vmod",
+                @"TestData\Jobs\24t Coach EngineOnly_Engine Only3.vmod"
+            })
+                ;
+        }
+    }
 }
\ No newline at end of file
diff --git a/VectoCoreTest/Reports/SumWriterTest.cs b/VectoCoreTest/Reports/SumWriterTest.cs
index e6bf52553d1dc477eb069d463771b40baab10ed5..6c5e7dde3fcec03f197e4e317e4c3803b9dd0369 100644
--- a/VectoCoreTest/Reports/SumWriterTest.cs
+++ b/VectoCoreTest/Reports/SumWriterTest.cs
@@ -6,96 +6,102 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Tests.Reports
 {
-	[TestClass]
-	public class SumWriterTest
-	{
-		[TestMethod]
-		public void TestSumCalcFixedTime()
-		{
-			var sumWriter = new SummaryFileWriter("testsumcalc_fixed.vsum");
-
-			var modData = new ModalDataWriter("testsumcalc_fixed.vmod");
-			modData.AddAuxiliary("FAN");
-
-			for (var i = 0; i < 500; i++) {
-				modData[ModalResultField.simulationInterval] = 1.SI<Second>();
-				modData[ModalResultField.time] = i.SI<Second>();
-				modData[ModalResultField.dist] = i.SI<Meter>();
-				modData["FAN"] = 3000.SI<Watt>();
-				modData[ModalResultField.Pair] = 3000.SI<Watt>();
-				modData[ModalResultField.Proll] = 3000.SI<Watt>();
-				modData[ModalResultField.Pgrad] = 3000.SI<Watt>();
-				modData[ModalResultField.Paux] = 3000.SI<Watt>();
-				modData[ModalResultField.Pbrake] = 3000.SI<Watt>();
-
-				modData[ModalResultField.FCMap] = 1e-4.SI<KilogramPerSecond>();
-
-				modData[ModalResultField.altitude] = 0.SI<Meter>();
-				modData.CommitSimulationStep();
-			}
-
-			sumWriter.WriteFullPowertrain(modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>());
-
-			modData.Finish(VectoRun.Status.Success);
-			sumWriter.Finish();
-
-			var sumData = VectoCSVFile.Read("testsumcalc_fixed.vsum", false, true);
-
-			// 3kW * 500s => to kWh
-			Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eair [kWh]"), 1e-3);
-			Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eaux_FAN [kWh]"), 1e-3);
-			Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eroll [kWh]"), 1e-3);
-			Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Egrad [kWh]"), 1e-3);
-			Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eaux [kWh]"), 1e-3);
-			Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Ebrake [kWh]"), 1e-3);
-
-			// 500s * 1e-4 kg/s = 0.05kg  => 0.05kg / 499s => to g/h
-			Assert.AreEqual((500.0 * 1e-4) * 1000 * 3600 / 499.0, sumData.Rows[0].ParseDouble("FC-Map [g/h]"), 1e-3);
-			// 500s * 1e-4 kg/s = 0.05kg => 0.05kg / 499m => to g/km
-			Assert.AreEqual((500.0 * 1e-4) * 1000 * 1000 / 499.0, sumData.Rows[0].ParseDouble("FC-Map [g/km]"), 1e-3);
-		}
-
-		[TestMethod]
-		public void TestSumCalcVariableTime()
-		{
-			var sumWriter = new SummaryFileWriter("testsumcalc_var.vsum");
-
-			var modData = new ModalDataWriter("testsumcalc_var.vmod");
-			modData.AddAuxiliary("FAN");
-
-			var timeSteps = new[] { 0.5.SI<Second>(), 0.3.SI<Second>(), 1.2.SI<Second>(), 12.SI<Second>(), 0.1.SI<Second>() };
-			var powerDemand = new[] { 1000.SI<Watt>(), 1500.SI<Watt>(), 2000.SI<Watt>(), 2500.SI<Watt>(), 3000.SI<Watt>() };
-
-			for (var i = 0; i < 500; i++) {
-				modData[ModalResultField.simulationInterval] = timeSteps[i % timeSteps.Count()];
-				modData[ModalResultField.time] = i.SI<Second>();
-				modData[ModalResultField.dist] = i.SI<Meter>();
-				modData["FAN"] = powerDemand[i % powerDemand.Count()];
-				modData[ModalResultField.Pair] = powerDemand[i % powerDemand.Count()];
-				modData[ModalResultField.Proll] = powerDemand[i % powerDemand.Count()];
-				modData[ModalResultField.Pgrad] = powerDemand[i % powerDemand.Count()];
-				modData[ModalResultField.Paux] = powerDemand[i % powerDemand.Count()];
-				modData[ModalResultField.Pbrake] = powerDemand[i % powerDemand.Count()];
-
-				modData[ModalResultField.altitude] = 0.SI<Meter>();
-				modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
-				modData.CommitSimulationStep();
-			}
-
-			sumWriter.WriteFullPowertrain(modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>());
-
-			modData.Finish(VectoRun.Status.Success);
-			sumWriter.Finish();
-
-			var sumData = VectoCSVFile.Read("testsumcalc_var.vsum", false, true);
-
-			// sum(dt * p) => to kWh
-			Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eair [kWh]"), 1e-3);
-			Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eaux_FAN [kWh]"), 1e-3);
-			Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eroll [kWh]"), 1e-3);
-			Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Egrad [kWh]"), 1e-3);
-			Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eaux [kWh]"), 1e-3);
-			Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Ebrake [kWh]"), 1e-3);
-		}
-	}
+    [TestClass]
+    public class SumWriterTest
+    {
+        [TestMethod]
+        public void TestSumCalcFixedTime()
+        {
+            var sumWriter = new SummaryFileWriter("testsumcalc_fixed.vsum");
+
+            var modData = new ModalDataWriter("testsumcalc_fixed.vmod");
+            modData.AddAuxiliary("FAN");
+
+            for (var i = 0; i < 500; i++) {
+                modData[ModalResultField.simulationInterval] = 1.SI<Second>();
+                modData[ModalResultField.time] = i.SI<Second>();
+                modData[ModalResultField.dist] = i.SI<Meter>();
+                modData["FAN"] = 3000.SI<Watt>();
+                modData[ModalResultField.Pair] = 3000.SI<Watt>();
+                modData[ModalResultField.Proll] = 3000.SI<Watt>();
+                modData[ModalResultField.Pgrad] = 3000.SI<Watt>();
+                modData[ModalResultField.Paux] = 3000.SI<Watt>();
+                modData[ModalResultField.Pbrake] = 3000.SI<Watt>();
+
+                modData[ModalResultField.FCMap] = 1e-4.SI<KilogramPerSecond>();
+
+                modData[ModalResultField.altitude] = 0.SI<Meter>();
+                modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
+                modData[ModalResultField.Pe_eng] = (i % 2 == 0 ? 1 : -1) * 3000.SI<Watt>();
+
+                modData.CommitSimulationStep();
+            }
+
+            sumWriter.WriteFullPowertrain(modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>());
+
+            modData.Finish(VectoRun.Status.Success);
+            sumWriter.Finish();
+
+            var sumData = VectoCSVFile.Read("testsumcalc_fixed.vsum", false, true);
+
+            // 3kW * 500s => to kWh
+            Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eair [kWh]"), 1e-3);
+            Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eaux_FAN [kWh]"), 1e-3);
+            Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eroll [kWh]"), 1e-3);
+            Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Egrad [kWh]"), 1e-3);
+            Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Eaux [kWh]"), 1e-3);
+            Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("Ebrake [kWh]"), 1e-3);
+
+            // 500s * 1e-4 kg/s = 0.05kg  => 0.05kg / 499s => to g/h
+            Assert.AreEqual((500.0 * 1e-4) * 1000 * 3600 / 499.0, sumData.Rows[0].ParseDouble("FC-Map [g/h]"), 1e-3);
+            // 500s * 1e-4 kg/s = 0.05kg => 0.05kg / 499m => to g/km
+            Assert.AreEqual((500.0 * 1e-4) * 1000 * 1000 / 499.0, sumData.Rows[0].ParseDouble("FC-Map [g/km]"), 1e-3);
+        }
+
+        [TestMethod]
+        public void TestSumCalcVariableTime()
+        {
+            var sumWriter = new SummaryFileWriter("testsumcalc_var.vsum");
+
+            var modData = new ModalDataWriter("testsumcalc_var.vmod");
+            modData.AddAuxiliary("FAN");
+
+            var timeSteps = new[]
+            { 0.5.SI<Second>(), 0.3.SI<Second>(), 1.2.SI<Second>(), 12.SI<Second>(), 0.1.SI<Second>() };
+            var powerDemand = new[]
+            { 1000.SI<Watt>(), 1500.SI<Watt>(), 2000.SI<Watt>(), 2500.SI<Watt>(), 3000.SI<Watt>() };
+
+            for (var i = 0; i < 500; i++) {
+                modData[ModalResultField.simulationInterval] = timeSteps[i % timeSteps.Count()];
+                modData[ModalResultField.time] = i.SI<Second>();
+                modData[ModalResultField.dist] = i.SI<Meter>();
+                modData["FAN"] = powerDemand[i % powerDemand.Count()];
+                modData[ModalResultField.Pair] = powerDemand[i % powerDemand.Count()];
+                modData[ModalResultField.Proll] = powerDemand[i % powerDemand.Count()];
+                modData[ModalResultField.Pgrad] = powerDemand[i % powerDemand.Count()];
+                modData[ModalResultField.Paux] = powerDemand[i % powerDemand.Count()];
+                modData[ModalResultField.Pbrake] = powerDemand[i % powerDemand.Count()];
+
+                modData[ModalResultField.altitude] = 0.SI<Meter>();
+                modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
+                modData[ModalResultField.Pe_eng] = (i % 2 == 0 ? 1 : -1) * powerDemand[i % powerDemand.Count()];
+                modData.CommitSimulationStep();
+            }
+
+            sumWriter.WriteFullPowertrain(modData, "testSumCalc", "--", "--", 0.SI<Kilogram>(), 0.SI<Kilogram>());
+
+            modData.Finish(VectoRun.Status.Success);
+            sumWriter.Finish();
+
+            var sumData = VectoCSVFile.Read("testsumcalc_var.vsum", false, true);
+
+            // sum(dt * p) => to kWh
+            Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eair [kWh]"), 1e-3);
+            Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eaux_FAN [kWh]"), 1e-3);
+            Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eroll [kWh]"), 1e-3);
+            Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Egrad [kWh]"), 1e-3);
+            Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Eaux [kWh]"), 1e-3);
+            Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("Ebrake [kWh]"), 1e-3);
+        }
+    }
 }
\ No newline at end of file
diff --git a/VectoCoreTest/TestData/Results/EngineOnlyCycles/40t_Long_Haul_Truck.vsum b/VectoCoreTest/TestData/Results/EngineOnlyCycles/40t_Long_Haul_Truck.vsum
index 689d0c5eaefbe56bc6ee3e9cadbbf1fef7f3c491..80f890f7f8d11a3bc770c96d8843ee2c20e8383f 100644
--- a/VectoCoreTest/TestData/Results/EngineOnlyCycles/40t_Long_Haul_Truck.vsum
+++ b/VectoCoreTest/TestData/Results/EngineOnlyCycles/40t_Long_Haul_Truck.vsum
@@ -1,2 +1,2 @@
-Job [-],Input File [-],Cycle [-],time [s],distance [km],speed [km/h],∆altitude [m],Eaux_FAN [kWh],Eaux_PS [kWh],Eaux_STP [kWh],Eaux_ES [kWh],Eaux_AC [kWh],Ppos [kW],Pneg [kW],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],CO2 [g/km],CO2 [g/tkm],FC-Final [g/km],FC-Final [l/100tkm],FC-Final [l/100km],PwheelPos [kW],Pbrake [kW],EposICE [kWh],EnegICE [kWh],Eair [kWh],Eroll [kWh],Egrad [kWh],Eacc [kWh],Eaux [kWh],Ebrake [kWh],Etransm [kWh],Eretarder [kWh],Etorqueconv [kWh],Mass [kg],Loading [kg],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],Acc.Noise [m/s^2],pAcc [%],pDec [%],pCruise [%],pStop [%]
-1,40t_Long_Haul_Truck.vecto,Long_Haul.vdri,5188,108.1817,75.06826,0.4176572,1.44111111111111,1.93108893699116,0.62256001614862,2.55282541645898,0.504388880299197,84.2005492982813,-1.38841319755122,16373.51,218.1149,-,-,16610.92,221.2776,699.2371,-,221.2776,-,26.59586,71.9230417326127,-2.65873198913168,121.342347155412,-2.00085768580437,-68.5272798927924,-27.4112346063885,-0.000913775395601988,6.82509400778347E-08,-7.05197461869982,-3.8315282110042,-10.5097224537532,-2.00511476749089,0,14600,0,-4.595578E-10,0.4826669,-0.5824779,0.194878,0.04471858,0.03797225,0.870663,0.04664611
\ No newline at end of file
+Job [-],Input File [-],Cycle [-],Status,time [s],distance [km],speed [km/h],∆altitude [m],Eaux_FAN [kWh],Eaux_PS [kWh],Eaux_STP [kWh],Eaux_ES [kWh],Eaux_AC [kWh],Ppos [kW],Pneg [kW],FC-Map [g/h],FC-Map [g/km],FC-AUXc [g/h],FC-AUXc [g/km],FC-WHTCc [g/h],FC-WHTCc [g/km],CO2 [g/km],CO2 [g/tkm],FC-Final [g/km],FC-Final [l/100tkm],FC-Final [l/100km],PwheelPos [kW],Pbrake [kW],EposICE [kWh],EnegICE [kWh],Eair [kWh],Eroll [kWh],Egrad [kWh],Eacc [kWh],Eaux [kWh],Ebrake [kWh],Etransm [kWh],Eretarder [kWh],Etorqueconv [kWh],Mass [kg],Loading [kg],a [m/s^2],a_pos [m/s^2],a_neg [m/s^2],Acc.Noise [m/s^2],pAcc [%],pDec [%],pCruise [%],pStop [%]
+1,40t_Long_Haul_Truck.vecto,Long_Haul.vdri,Success,5188,108.1817,75.06826,0.4176572,1.44111111111111,1.93108893699116,0.62256001614862,2.55282541645898,0.504388880299197,84.2005492982813,-1.38841319755122,16373.51,218.1149,-,-,16610.92,221.2776,699.2371,-,221.2776,-,26.59586,71.9230417326127,-2.65873198913168,121.342347155412,-2.00085768580437,-68.5272798927924,-27.4112346063885,-0.000913775395601988,6.82509400778347E-08,-7.05197461869982,-3.8315282110042,-10.5097224537532,-2.00511476749089,0,14600,0,-4.595578E-10,0.4826669,-0.5824779,0.194878,0.04471858,0.03797225,0.870663,0.04664611
\ No newline at end of file