From 61d1c09070c0ea859e91aa38d9e6934a973eefa5 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 30 May 2018 12:56:05 +0200
Subject: [PATCH] adding testcase: cycle with 0 stopping time at the beginning

---
 .../DistanceBasedDrivingCycleTest.cs          | 51 +++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs
index 4da358922f..faa6945e94 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponent/DistanceBasedDrivingCycleTest.cs
@@ -29,16 +29,21 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using System.Globalization;
+using System.IO;
 using NUnit.Framework;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
+using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.Models.Connector.Ports.Impl;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Impl;
+using TUGraz.VectoCore.OutputData;
+using TUGraz.VectoCore.OutputData.FileIO;
 using TUGraz.VectoCore.Tests.Integration;
 using TUGraz.VectoCore.Tests.Utils;
 
@@ -51,6 +56,11 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 
 		public const double Tolerance = 0.0001;
 
+		[OneTimeSetUp]
+		public void RunBeforeAnyTests()
+		{
+			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
+		}
 
 		[TestCase]
 		public void TestLimitRequst()
@@ -219,5 +229,46 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent
 			container.CommitSimulationStep(absTime, response.SimulationInterval);
 			absTime += response.SimulationInterval;
 		}
+
+		[TestCase]
+		public void CycleStartsWithNoStopTime()
+		{
+			var data = new string[] {
+				// <s>,<v>,<grad>,<stop>
+				"  0,   0,  0,   0",
+				" 10,  50,  0,   0",
+				"100,  50,  0,   0"
+			};
+			var cycleData = SimpleDrivingCycles.CreateCycleData(data);
+
+			var modFileName = string.Format(CultureInfo.InvariantCulture, "CyccleStartWithoutStop.vmod");
+			var run = Truck40tPowerTrain.CreateEngineeringRun(cycleData, modFileName);
+
+			
+			run.Run();
+
+			Assert.IsTrue(run.FinishedWithoutErrors, "Cycle start witout stoptime FAILED");
+		}
+
+		[TestCase]
+		public void CycleWithZeroStopTime()
+		{
+			var data = new string[] {
+				// <s>,<v>,<grad>,<stop>
+				"  0,   0,  0,   2",
+				"100,  50,  0,   0",
+				"120,   0,  0,   0",
+				"200,  50,  0,   0"
+			};
+			var cycleData = SimpleDrivingCycles.CreateCycleData(data);
+
+			var modFileName = string.Format(CultureInfo.InvariantCulture, "CyccleWithZeroStoptime.vmod");
+			var run = Truck40tPowerTrain.CreateEngineeringRun(cycleData, modFileName);
+
+
+			run.Run();
+
+			Assert.IsTrue(run.FinishedWithoutErrors, "Cycle start witout stoptime FAILED");
+		}
 	}
 }
-- 
GitLab