diff --git a/VectoCore/VectoCore.csproj b/VectoCore/VectoCore.csproj index cdc012fe680190d06d7bcdee22dfc351594fed9f..6575bb3606fc880f1c34ece98efd36cb60342c4a 100644 --- a/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore.csproj @@ -91,6 +91,7 @@ </Reference> <Reference Include="System" /> <Reference Include="System.Core" /> + <Reference Include="System.Drawing" /> <Reference Include="System.Runtime.Serialization" /> <Reference Include="System.Xml.Linq" /> <Reference Include="System.Data.DataSetExtensions" /> diff --git a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs index 3b685cc3db059716f2d5472a28b41d41e9ba4ac8..47bc46a555b15c37eea7c8fbba01825a6594189b 100644 --- a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs +++ b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestCoach.cs @@ -1,8 +1,5 @@ -using System.IO; -using Microsoft.VisualStudio.TestTools.UnitTesting; +using Microsoft.VisualStudio.TestTools.UnitTesting; using NLog; -using TUGraz.VectoCore.FileIO.Reader; -using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Tests.Utils; namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy @@ -16,135 +13,190 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy public void DisableLogging() { LogManager.DisableLogging(); + GraphWriter.Disable(); } [TestMethod] - public void Accelerate_20_60_level() + public void Coach_Accelerate_20_60_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_Level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_level.vmod").Run(); + + 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 Accelerate_20_60_uphill_5() + public void Coach_Accelerate_20_60_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphilll_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_5.vmod").Run(); + + 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 Accelerate_20_60_downhill_5() + public void Coach_Accelerate_20_60_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_downhill_5.vmod").Run(); + + 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 Accelerate_20_60_uphill_25() + public void Coach_Accelerate_20_60_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_25.vmod").Run(); + + 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 Accelerate_20_60_downhill_25() + public void Coach_Accelerate_20_60_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_downhill_25.vmod").Run(); + + 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 Accelerate_20_60_uphill_15() + public void Coach_Accelerate_20_60_uphill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_uphill_15.vmod").Run(); + + 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 Accelerate_20_60_downhill_15() + public void Coach_Accelerate_20_60_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_60_downhill_15.vmod").Run(); + + 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 Accelerate_0_85_level() + public void Coach_Accelerate_0_85_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_level.vmod").Run(); + + 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 Accelerate_0_85_uphill_1() + public void Coach_Accelerate_0_85_uphill_1() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_1); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_1.vmod").Run(); + + 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 Accelerate_0_85_uphill_2() + public void Coach_Accelerate_0_85_uphill_2() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_2); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_2.vmod").Run(); + + 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 Accelerate_0_85_uphill_5() + public void Coach_Accelerate_0_85_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_5.vmod").Run(); + + 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 Accelerate_0_85_downhill_5() + public void Coach_Accelerate_0_85_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_5.vmod").Run(); + + 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 Accelerate_0_85_uphill_25() + public void Coach_Accelerate_0_85_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_25.vmod").Run(); + + 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 Accelerate_0_85_downhill_25() + public void Coach_Accelerate_0_85_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_25.vmod").Run(); + + 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 Accelerate_0_85_uphill_10() + public void Coach_Accelerate_0_85_uphill_10() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_10); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_uphill_10.vmod").Run(); + + 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 Accelerate_0_85_downhill_15() + public void Coach_Accelerate_0_85_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_0_85_downhill_15.vmod").Run(); + + 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 Accelerate_stop_0_85_level() + public void Coach_Accelerate_stop_0_85_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_stop_0_85_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_stop_0_85_level.vmod").Run(); + + 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 Accelerate_20_22_uphill_5() + public void Coach_Accelerate_20_22_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_22_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Accelerate_20_22_uphill_5.vmod").Run(); + + 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 @@ -152,52 +204,73 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Decelerate [TestMethod] - public void Decelerate_22_20_downhill_5() + public void Coach_Decelerate_22_20_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_22_20_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_22_20_downhill_5.vmod").Run(); + + 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 Decelerate_60_20_level() + public void Coach_Decelerate_60_20_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_level.vmod").Run(); + + 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 Decelerate_45_0_level() + public void Coach_Decelerate_45_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_level.vmod").Run(); + + 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 Decelerate_45_0_uphill_5() + public void Coach_Decelerate_45_0_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_uphill_5.vmod").Run(); + + 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 Decelerate_45_0_downhill_5() + public void Coach_Decelerate_45_0_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_45_0_downhill_5.vmod").Run(); + + 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 Decelerate_60_20_uphill_5() + public void Coach_Decelerate_60_20_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_5.vmod").Run(); + + 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 Decelerate_60_20_downhill_5() + public void Coach_Decelerate_60_20_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_downhill_5.vmod").Run(); + + 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] @@ -205,13 +278,19 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_25.vmod").Run(); + + 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 Decelerate_60_20_downhill_25() + public void Coach_Decelerate_60_20_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_downhill_25.vmod").Run(); + + 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] @@ -219,10 +298,13 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_uphill_15.vmod").Run(); + + 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 Decelerate_60_20_downhill_15() + public void Coach_Decelerate_60_20_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(new[] { // <s>,<v>,<grad>,<stop> @@ -231,27 +313,39 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy "1000, 20, -15, 0", }); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_60_20_downhill_15.vmod").Run(); + + 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 Decelerate_80_0_level() + public void Coach_Decelerate_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_level.vmod").Run(); + + 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 Decelerate_80_0_uphill_5() + public void Coach_Decelerate_80_0_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_uphill_5.vmod").Run(); + + 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 Decelerate_80_0_downhill_5() + public void Coach_Decelerate_80_0_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_5.vmod").Run(); + + 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] @@ -259,13 +353,19 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod").Run(); + + 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 Decelerate_80_0_downhill_25() + public void Coach_Decelerate_80_0_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_25.vmod").Run(); + + 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, Ignore] @@ -273,13 +373,19 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod").Run(); + + 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 Decelerate_80_0_downhill_15() + public void Coach_Decelerate_80_0_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Decelerate_80_0_downhill_15.vmod").Run(); + + 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 @@ -287,119 +393,167 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Drive [TestMethod] - public void Drive_80_level() + public void Coach_Drive_80_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_level.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_80_level.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_level.vmod"); } [TestMethod] - public void Drive_80_uphill_5() + public void Coach_Drive_80_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_5.vmod").Run(); + + 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 Drive_80_downhill_5() + public void Coach_Drive_80_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_downhill_5.vmod").Run(); + + 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 Drive_20_downhill_15() + public void Coach_Drive_20_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_20_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_20_downhill_15.vmod").Run(); + + 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 Drive_30_downhill_15() + public void Coach_Drive_30_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_downhill_15.vmod").Run(); + + 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 Drive_50_downhill_15() + public void Coach_Drive_50_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_downhill_15.vmod").Run(); + + 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 Drive_80_uphill_25() + public void Coach_Drive_80_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_25.vmod").Run(); + + 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 Drive_80_downhill_15() + public void Coach_Drive_80_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_downhill_15.vmod").Run(); + + 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 Drive_80_uphill_15() + public void Coach_Drive_80_uphill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_uphill_15.vmod").Run(); + + 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 Drive_10_level() + public void Coach_Drive_10_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_level.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_10_level.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_level.vmod"); } [TestMethod] - public void Drive_10_uphill_5() + public void Coach_Drive_10_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(new[] { // <s>,<v>,<grad>,<stop> " 0, 10, 5, 0", - "1000, 10, 5, 0", + "800, 10, 5, 0", }); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_5.vmod").Run(); + + 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 Drive_10_downhill_5() + public void Coach_Drive_10_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_5); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_5.vmod").Run(); + + 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 Drive_10_downhill_25() + public void Coach_Drive_10_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_25.vmod").Run(); + + 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 Drive_10_uphill_25() + public void Coach_Drive_10_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_25); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_25.vmod").Run(); + + 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 Drive_10_downhill_15() + public void Coach_Drive_10_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_downhill_15.vmod").Run(); + + 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 Drive_10_uphill_15() + public void Coach_Drive_10_uphill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_15); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_10_uphill_15.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_10_uphill_15.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_10_uphill_15.vmod"); } #endregion @@ -407,67 +561,94 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Slope [TestMethod] - public void Drive_80_Increasing_Slope() + public void Coach_Drive_80_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Increasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_inc.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_slope_inc.vmod"); } [TestMethod] - public void Drive_50_Increasing_Slope() + public void Coach_Drive_50_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Increasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_inc.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_slope_inc.vmod"); } [TestMethod] - public void Drive_30_Increasing_Slope() + public void Coach_Drive_30_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Increasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_inc.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_slope_inc.vmod"); } [TestMethod] - public void Drive_80_Decreasing_Slope() + public void Coach_Drive_80_Decreasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Decreasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_dec.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_dec.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_slope_dec.vmod"); } [TestMethod] - public void Drive_50_Decreasing_Slope() + public void Coach_Drive_50_Decreasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Decreasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_dec.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_dec.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_slope_dec.vmod"); } [TestMethod] - public void Drive_30_Decreasing_Slope() + public void Coach_Drive_30_Decreasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Decreasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_dec.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_dec.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_slope_dec.vmod"); } [TestMethod] - public void Drive_80_Dec_Increasing_Slope() + public void Coach_Drive_80_Dec_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Dec_Increasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_80_slope_dec-inc.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_80_slope_dec-inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_80_slope_dec-inc.vmod"); } [TestMethod] - public void Drive_50_Dec_Increasing_Slope() + public void Coach_Drive_50_Dec_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Dec_Increasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_50_slope_dec-inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_50_slope_dec-inc.vmod"); } [TestMethod] - public void Drive_30_Dec_Increasing_Slope() + public void Coach_Drive_30_Dec_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Dec_Increasing_Slope); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_30_slope_dec-inc.vmod").Run(); + + GraphWriter.Write("Coach_DriverStrategy_Drive_30_slope_dec-inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\Coach\24t Coach_Cycle_Drive_30_slope_dec-inc.vmod"); } #endregion @@ -475,38 +656,53 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Misc [TestMethod] - public void DecelerateWhileBrake_80_0_level() + public void Coach_DecelerateWhileBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerateWhileBrake_80_0_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod").Run(); + + 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 AccelerateWhileBrake_80_0_level() + public void Coach_AccelerateWhileBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateWhileBrake_80_0_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod").Run(); + + 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 AccelerateAtBrake_80_0_level() + public void Coach_AccelerateAtBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateAtBrake_80_0_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_AccelerateAtBrake_80_0_level.vmod").Run(); + + 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 AccelerateBeforeBrake_80_0_level() + public void Coach_AccelerateBeforeBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateBeforeBrake_80_0_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod").Run(); + + 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 Drive_stop_85_stop_85_level() + public void Coach_Drive_stop_85_stop_85_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_stop_85_stop_85_level); CoachPowerTrain.CreateEngineeringRun(cycle, "Coach_DriverStrategy_Drive_stop_85_stop_85_level.vmod").Run(); + + 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 diff --git a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs index 202e73580b58174b1b41487df9799077fbc39216..83474253d1d9e4998bc3e20a2147ef6752963c10 100644 --- a/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs +++ b/VectoCoreTest/Integration/DriverStrategy/DriverStrategyTestTruck.cs @@ -13,61 +13,83 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy public void DisableLogging() { LogManager.DisableLogging(); + GraphWriter.Disable(); } [TestMethod] - public void Accelerate_20_60_level() + public void Truck_Accelerate_20_60_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_Level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_level.vmod").Run(); + + 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 Accelerate_20_60_uphill_5() + public void Truck_Accelerate_20_60_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphilll_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_uphill_5.vmod").Run(); + + 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 Accelerate_20_60_downhill_5() + public void Truck_Accelerate_20_60_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_downhill_5.vmod").Run(); + + 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 Accelerate_20_60_uphill_25() + public void Truck_Accelerate_20_60_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_uphill_25.vmod").Run(); + + 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 Accelerate_20_60_downhill_25() + public void Truck_Accelerate_20_60_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_downhill_25.vmod").Run(); + + 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 Accelerate_20_60_uphill_15() + public void Truck_Accelerate_20_60_uphill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_uphill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_uphill_15.vmod").Run(); + + 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 Accelerate_20_60_downhill_15() + public void Truck_Accelerate_20_60_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_60_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_60_downhill_15.vmod").Run(); + + 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 Accelerate_0_85_level() + public void Truck_Accelerate_0_85_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_level.vmod").Run(); @@ -77,74 +99,104 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy } [TestMethod] - public void Accelerate_0_85_uphill_1() + public void Truck_Accelerate_0_85_uphill_1() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_1); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_1.vmod").Run(); + + 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 Accelerate_0_85_uphill_2() + public void Truck_Accelerate_0_85_uphill_2() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_2); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_2.vmod").Run(); + + 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 Accelerate_0_85_uphill_5() + public void Truck_Accelerate_0_85_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_5.vmod").Run(); + + 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 Accelerate_0_85_downhill_5() + 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 Accelerate_0_85_uphill_25() + public void Truck_Accelerate_0_85_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_25.vmod").Run(); + + 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 Accelerate_0_85_downhill_25() + public void Truck_Accelerate_0_85_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_downhill_25.vmod").Run(); + + 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 Accelerate_0_85_uphill_10() + public void Truck_Accelerate_0_85_uphill_10() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_uphill_10); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_uphill_10.vmod").Run(); + + 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 Accelerate_0_85_downhill_15() + public void Truck_Accelerate_0_85_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_0_85_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_0_85_downhill_15.vmod").Run(); + + 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 Accelerate_stop_0_85_level() + public void Truck_Accelerate_stop_0_85_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_stop_0_85_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_stop_0_85_level.vmod").Run(); + + 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 Accelerate_20_22_uphill_5() + public void Truck_Accelerate_20_22_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerate_20_22_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Accelerate_20_22_uphill_5.vmod").Run(); + + 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 @@ -152,52 +204,73 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Decelerate [TestMethod] - public void Decelerate_22_20_downhill_5() + public void Truck_Decelerate_22_20_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_22_20_downhill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_22_20_downhill_5.vmod").Run(); + + 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 Decelerate_60_20_level() + public void Truck_Decelerate_60_20_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_level.vmod").Run(); + + 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 Decelerate_45_0_level() + public void Truck_Decelerate_45_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_level.vmod").Run(); + + 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 Decelerate_45_0_uphill_5() + public void Truck_Decelerate_45_0_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_uphill_5.vmod").Run(); + + 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 Decelerate_45_0_downhill_5() + public void Truck_Decelerate_45_0_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_45_0_downhill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_45_0_downhill_5.vmod").Run(); + + 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 Decelerate_60_20_uphill_5() + public void Truck_Decelerate_60_20_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_uphill_5.vmod").Run(); + + 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 Decelerate_60_20_downhill_5() + public void Truck_Decelerate_60_20_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_downhill_5.vmod").Run(); + + 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] @@ -205,13 +278,19 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_uphill_25.vmod").Run(); + + 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 Decelerate_60_20_downhill_25() + public void Truck_Decelerate_60_20_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_downhill_25.vmod").Run(); + + 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] @@ -219,10 +298,13 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_uphill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_uphill_15.vmod").Run(); + + 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 Decelerate_60_20_downhill_15() + public void Truck_Decelerate_60_20_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(new[] { // <s>,<v>,<grad>,<stop> @@ -231,27 +313,39 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy "1000, 20, -15, 0", }); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_60_20_downhill_15.vmod").Run(); + + 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 Decelerate_80_0_level() + public void Truck_Decelerate_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_60_20_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_level.vmod").Run(); + + 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 Decelerate_80_0_uphill_5() + public void Truck_Decelerate_80_0_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_uphill_5.vmod").Run(); + + 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 Decelerate_80_0_downhill_5() + public void Truck_Decelerate_80_0_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_downhill_5.vmod").Run(); + + 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] @@ -259,13 +353,19 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_steep_uphill_25.vmod").Run(); + + 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 Decelerate_80_0_downhill_25() + public void Truck_Decelerate_80_0_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_downhill_25.vmod").Run(); + + 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] @@ -273,13 +373,19 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_uphill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_steep_uphill_15.vmod").Run(); + + 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 Decelerate_80_0_downhill_15() + public void Truck_Decelerate_80_0_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerate_80_0_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Decelerate_80_0_downhill_15.vmod").Run(); + + 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"); } #endregion @@ -287,119 +393,167 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Drive [TestMethod] - public void Drive_80_level() + public void Truck_Drive_80_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_level.vmod").Run(); + + 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 Drive_80_uphill_5() + public void Truck_Drive_80_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_5.vmod").Run(); + + 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 Drive_80_downhill_5() + public void Truck_Drive_80_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_downhill_5.vmod").Run(); + + 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 Drive_20_downhill_15() + public void Truck_Drive_20_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_20_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_20_downhill_15.vmod").Run(); + + 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 Drive_30_downhill_15() + public void Truck_Drive_30_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_downhill_15.vmod").Run(); + + 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 Drive_50_downhill_15() + public void Truck_Drive_50_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_downhill_15.vmod").Run(); + + 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 Drive_80_uphill_25() + public void Truck_Drive_80_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_25.vmod").Run(); + + 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 Drive_80_downhill_15() + public void Truck_Drive_80_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_downhill_15.vmod").Run(); + + 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 Drive_80_uphill_15() + public void Truck_Drive_80_uphill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_uphill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_uphill_15.vmod").Run(); + + 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 Drive_10_level() + public void Truck_Drive_10_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_level.vmod").Run(); + + 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 Drive_10_uphill_5() + public void Truck_Drive_10_uphill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(new[] { // <s>,<v>,<grad>,<stop> " 0, 10, 5, 0", - "1000, 10, 5, 0", + "500, 10, 5, 0", }); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_5.vmod").Run(); + + 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 Drive_10_downhill_5() + public void Truck_Drive_10_downhill_5() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_5); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_5.vmod").Run(); + + 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 Drive_10_downhill_25() + public void Truck_Drive_10_downhill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_25.vmod").Run(); + + 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 Drive_10_uphill_25() + public void Truck_Drive_10_uphill_25() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_25); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_25.vmod").Run(); + + 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 Drive_10_downhill_15() + public void Truck_Drive_10_downhill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_downhill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_downhill_15.vmod").Run(); + + 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 Drive_10_uphill_15() + public void Truck_Drive_10_uphill_15() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_10_uphill_15); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_10_uphill_15.vmod").Run(); + + 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 @@ -407,67 +561,94 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Slope [TestMethod] - public void Drive_80_Increasing_Slope() + public void Truck_Drive_80_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Increasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_inc.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_slope_inc.vmod"); } [TestMethod] - public void Drive_50_Increasing_Slope() + public void Truck_Drive_50_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Increasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_inc.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_slope_inc.vmod"); } [TestMethod] - public void Drive_30_Increasing_Slope() + public void Truck_Drive_30_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Increasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_inc.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_slope_inc.vmod"); } [TestMethod] - public void Drive_80_Decreasing_Slope() + public void Truck_Drive_80_Decreasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Decreasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_dec.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_dec.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_slope_dec.vmod"); } [TestMethod] - public void Drive_50_Decreasing_Slope() + public void Truck_Drive_50_Decreasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Decreasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_dec.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_dec.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_slope_dec.vmod"); } [TestMethod] - public void Drive_30_Decreasing_Slope() + public void Truck_Drive_30_Decreasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Decreasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_dec.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_dec.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_slope_dec.vmod"); } [TestMethod] - public void Drive_80_Dec_Increasing_Slope() + public void Truck_Drive_80_Dec_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_80_Dec_Increasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_80_slope_dec-inc.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_80_slope_dec-inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_80_slope_dec-inc.vmod"); } [TestMethod] - public void Drive_50_Dec_Increasing_Slope() + public void Truck_Drive_50_Dec_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_50_Dec_Increasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_50_slope_dec-inc.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_50_slope_dec-inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_50_slope_dec-inc.vmod"); } [TestMethod] - public void Drive_30_Dec_Increasing_Slope() + public void Truck_Drive_30_Dec_Increasing_Slope() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_30_Dec_Increasing_Slope); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_30_slope_dec-inc.vmod").Run(); + + GraphWriter.Write("Truck_DriverStrategy_Drive_30_slope_dec-inc.vmod", + @"..\..\TestData\Integration\DriverStrategy\Vecto2.2\40t Truck\40t_Long_Haul_Truck_Cycle_Drive_30_slope_dec-inc.vmod"); } #endregion @@ -475,38 +656,53 @@ namespace TUGraz.VectoCore.Tests.Integration.DriverStrategy #region Misc [TestMethod] - public void DecelerateWhileBrake_80_0_level() + public void Truck_DecelerateWhileBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDecelerateWhileBrake_80_0_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_DecelerateWhileBrake_80_0_level.vmod").Run(); + + 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 AccelerateWhileBrake_80_0_level() + public void Truck_AccelerateWhileBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateWhileBrake_80_0_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_AccelerateWhileBrake_80_0_level.vmod").Run(); + + 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 AccelerateAtBrake_80_0_level() + public void Truck_AccelerateAtBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateAtBrake_80_0_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_AccelerateAtBrake_80_0_level.vmod").Run(); + + 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 AccelerateBeforeBrake_80_0_level() + public void Truck_AccelerateBeforeBrake_80_0_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleAccelerateBeforeBrake_80_0_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_AccelerateBeforeBrake_80_0_level.vmod").Run(); + + 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 Drive_stop_85_stop_85_level() + public void Truck_Drive_stop_85_stop_85_level() { var cycle = SimpleDrivingCycles.CreateCycleData(SimpleDrivingCycles.CycleDrive_stop_85_stop_85_level); Truck40tPowerTrain.CreateEngineeringRun(cycle, "Truck_DriverStrategy_Drive_stop_85_stop_85_level.vmod").Run(); + + 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"); } #endregion diff --git a/VectoCoreTest/Integration/SimpleDrivingCycles.cs b/VectoCoreTest/Integration/SimpleDrivingCycles.cs index 4625b894f8df3867d995233fcd38727324ffbafd..f8e3215f65d5fba536cf8789a97c552b9f0540a9 100644 --- a/VectoCoreTest/Integration/SimpleDrivingCycles.cs +++ b/VectoCoreTest/Integration/SimpleDrivingCycles.cs @@ -303,13 +303,13 @@ namespace TUGraz.VectoCore.Tests.Integration public static readonly string[] CycleDrive_10_level = { // <s>,<v>,<grad>,<stop> " 0, 10, 0, 0", - "1000, 10, 0, 0", + "500, 10, 0, 0", }; public static readonly string[] CycleDrive_10_uphill_5 = { // <s>,<v>,<grad>,<stop> " 0, 10, -5, 0", - " 1000, 10, -5, 0", + " 800, 10, -5, 0", }; public static readonly string[] CycleDrive_10_downhill_25 = { @@ -321,7 +321,7 @@ namespace TUGraz.VectoCore.Tests.Integration public static readonly string[] CycleDrive_10_uphill_25 = { // <s>,<v>,<grad>,<stop> " 0, 10, 25, 0", - " 500, 10, 25, 0", + " 800, 10, 25, 0", }; public static readonly string[] CycleDrive_10_downhill_15 = { diff --git a/VectoCoreTest/Utils/GraphWriter.cs b/VectoCoreTest/Utils/GraphWriter.cs index a8d8c4ad0113512e3cf1590b2093277cf8e177ea..8fc4f77561e280815330a67abfc17d22caf1c8bf 100644 --- a/VectoCoreTest/Utils/GraphWriter.cs +++ b/VectoCoreTest/Utils/GraphWriter.cs @@ -1,9 +1,14 @@ using System; +using System.Collections.Generic; using System.Collections.Specialized; using System.Data; using System.IO; +using System.Drawing; +using System.Drawing.Text; using System.Linq; using System.Net; +using System.Text.RegularExpressions; +using NLog; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Utils; @@ -11,9 +16,84 @@ namespace TUGraz.VectoCore.Tests.Utils { public static class GraphWriter { + private static bool _enabled = true; + + public static void Enabled() + { + _enabled = true; + } + + public static void Disable() + { + _enabled = false; + } + + + public static void Write(string fileName) + { + if (!_enabled) { + return; + } + + var modDataV3 = VectoCSVFile.Read(fileName); + + var xfields = new[] { ModalResultField.time, ModalResultField.dist }; + + var yfields = new[] { + ModalResultField.v_act, ModalResultField.n, ModalResultField.Gear, ModalResultField.Pe_eng, ModalResultField.Tq_eng, + ModalResultField.FCMap + }; + + var images = new List<Stream>(); + try { + foreach (var xfield in xfields) { + var x = modDataV3.Rows.Cast<DataRow>().Select(v => v.Field<string>(xfield.GetName())).ToArray(); + + for (var i = 1; i <= yfields.Length; i++) { + var yfield = yfields[i - 1]; + var y = modDataV3.Rows.Cast<DataRow>().Select(v => v.Field<string>(yfield.GetName())).ToArray(); + + var values = string.Format("{0}|{1}", string.Join(",", x), string.Join(",", y)); + + if (yfield == ModalResultField.v_act) { + var y3 = + modDataV3.Rows.Cast<DataRow>() + .Select(v => v.Field<string>(ModalResultField.v_targ.GetName())) + .Select(v => string.IsNullOrWhiteSpace(v) ? "0" : v); + + values += string.Format("|{0}|{1}", string.Join(",", x), string.Join(",", y3)); + } + + values = values.Replace("NaN", "0"); + if (values.Length > 14000) { + // remove all decimal places to reduce request size + values = Regex.Replace(values, @"\..*?,", ","); + } + var maxX = (int)Math.Ceiling(x.ToDouble().Max()); + images.Add(CreateGraphStream(xfield.GetCaption(), yfield.GetCaption(), maxX, values)); + } + var outfileName = string.Format("{0}_{1}.png", Path.GetFileNameWithoutExtension(fileName), xfield.GetName()); + SaveImages(outfileName, images.ToArray()); + images.Clear(); + } + } finally { + images.ForEach(x => x.Close()); + } + } + + public static void Write(string fileNameV3, string fileNameV22) { + if (!_enabled) { + return; + } + var modDataV3 = VectoCSVFile.Read(fileNameV3); + if (!File.Exists(fileNameV22)) { + LogManager.GetCurrentClassLogger().Error("Modfile V2.2 not found: " + fileNameV22); + Write(fileNameV3); + return; + } var modDataV22 = VectoCSVFile.Read(fileNameV22); var xfields = new[] { ModalResultField.time, ModalResultField.dist }; @@ -23,44 +103,99 @@ namespace TUGraz.VectoCore.Tests.Utils ModalResultField.FCMap }; - foreach (var xfield in xfields) { - for (var i = 1; i <= yfields.Length; i++) { - var yfield = yfields[i - 1]; - var x = modDataV3.Rows.Cast<DataRow>().Select(v => v.Field<string>(ModalResultField.time.GetName())).ToArray(); - var y = modDataV3.Rows.Cast<DataRow>().Select(v => v.Field<string>(yfield.GetName())).ToArray(); + var images = new List<Stream>(); + try { + foreach (var xfield in xfields) { + var x = modDataV3.Rows.Cast<DataRow>().Select(v => v.Field<string>(xfield.GetName())).ToArray(); + var x2 = modDataV22.Rows.Cast<DataRow>().Select(v => v.Field<string>(xfield.GetName())).ToArray(); + + for (var i = 1; i <= yfields.Length; i++) { + var yfield = yfields[i - 1]; + var y = modDataV3.Rows.Cast<DataRow>().Select(v => v.Field<string>(yfield.GetName())).ToArray(); + var y2 = modDataV22.Rows.Cast<DataRow>().Select(v => v.Field<string>(yfield.GetName())).ToArray(); - var x2 = modDataV22.Rows.Cast<DataRow>().Select(v => v.Field<string>(ModalResultField.time.GetName())).ToArray(); - var y2 = modDataV22.Rows.Cast<DataRow>().Select(v => v.Field<string>(yfield.GetName())).ToArray(); + var values = string.Format("{0}|{1}|{2}|{3}", string.Join(",", x), string.Join(",", y), string.Join(",", x2), + string.Join(",", y2)); + if (yfield == ModalResultField.v_act) { + var y3 = + modDataV3.Rows.Cast<DataRow>() + .Select(v => v.Field<string>(ModalResultField.v_targ.GetName())) + .Select(v => string.IsNullOrWhiteSpace(v) ? "0" : v); - var fileName = string.Format("{0}_{1}_{2}.png", Path.GetFileNameWithoutExtension(fileNameV3), xfield, i); - var values = string.Format("{0}|{1}|{2}|{3}", string.Join(",", x), string.Join(",", y), string.Join(",", x2), - string.Join(",", y2)); + values += string.Format("|{0}|{1}", string.Join(",", x), string.Join(",", y3)); + } - var maxX = (int)Math.Ceiling(Math.Max(x.ToDouble().Max(), x2.ToDouble().Max())); - CreateGraphFile(fileName, xfield.GetCaption(), yfield.GetCaption(), maxX, values); + values = values.Replace("NaN", "0"); + if (values.Length > 14000) { + // remove all decimal places to reduce request size + values = Regex.Replace(values, @"\..*?,", ","); + } + var maxX = (int)Math.Ceiling(Math.Max(x.ToDouble().Max(), x2.ToDouble().Max())); + images.Add(CreateGraphStream(xfield.GetCaption(), yfield.GetCaption(), maxX, values)); + } + var fileName = string.Format("{0}_{1}.png", Path.GetFileNameWithoutExtension(fileNameV3), xfield.GetName()); + SaveImages(fileName, images.ToArray()); + images.Clear(); } + } finally { + images.ForEach(x => x.Close()); } } - private static void CreateGraphFile(string filename, string xLabel, string yLabel, int xAxisRange, string values) + private static Stream CreateGraphStream(string xLabel, string yLabel, int xAxisRange, string values) { using (var client = new WebClient()) { - byte[] response = client.UploadValues("https://chart.googleapis.com/chart", new NameValueCollection { + var response = client.UploadValues("https://chart.googleapis.com/chart", new NameValueCollection { { "cht", "lxy" }, { "chd", "t:" + values }, - { "chs", "1000x300" }, + { "chs", "1000x230" }, { "chxt", "x,x,y,y" }, { "chds", "a" }, - { "chxr", string.Format("0,0,{0},10", xAxisRange) }, - { "chco", "0000FF,FF0000" }, + { "chxr", string.Format("0,0,{0},{1}", xAxisRange, xAxisRange / 10) }, + { "chco", "0000FF,FF0000,00FF00" }, { "chg", "5,10" }, { "chxl", string.Format("1:|{0}|3:|{1}", xLabel, yLabel) }, { "chxp", "1,0|3,0" }, { "chdl", "V3|V2.2" }, }); - File.WriteAllBytes(filename, response); + return new MemoryStream(response); + } + } + + public static void SaveImages(string outputFile, params Stream[] inputFiles) + { + var titleHeight = 36; + var images = new List<Image>(); + Bitmap output = null; + Graphics g = null; + + try { + images = inputFiles.Select(Image.FromStream).ToList(); + output = new Bitmap(images.Max(x => x.Width), images.Sum(x => x.Height) + titleHeight); + g = Graphics.FromImage(output); + g.TextRenderingHint = TextRenderingHint.AntiAlias; + + g.DrawString(outputFile, new Font("Arial", 16), Brushes.Black, output.Width / 2, 10, + new StringFormat { Alignment = StringAlignment.Center }); + + var ypos = titleHeight; + foreach (var image in images) { + g.DrawImage(image, new System.Drawing.Point(0, ypos)); + ypos += image.Height; + image.Dispose(); + } + output.Save(outputFile); + } finally { + images.ForEach(x => x.Dispose()); + if (output != null) { + output.Dispose(); + } + + if (g != null) { + g.Dispose(); + } } } } diff --git a/VectoCoreTest/VectoCoreTest.csproj b/VectoCoreTest/VectoCoreTest.csproj index b70a6a6c16baaf6bcf2746b54891b8f20d454163..cd2b82cdf62cfc76c01a2f9570e37974f601479c 100644 --- a/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCoreTest/VectoCoreTest.csproj @@ -43,6 +43,7 @@ <Reference Include="System.Data" /> <Reference Include="System.Data.DataSetExtensions" /> <Reference Include="System.Design" /> + <Reference Include="System.Drawing" /> <Reference Include="System.Xml" /> </ItemGroup> <Choose>