Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Select Git revision
  • 1b51f7ef87eaeb75b50cbfa0468b670e1607a34d
  • stable default
  • amdm3/develop
  • fix-h2-ice-bus
  • feat-fchv-bus
  • powertrains-multiple-axles
  • issue-1039
  • amdm3/main
  • test/nuget_publish
  • IEPC-experiments
  • amdm2/main
  • amdm2/develop
  • aptngearbox-not-auto
  • playground
  • official/main
  • official/develop
  • issue-templates
  • pdf-reports
  • HEV-timeruns-dev
  • timerun-empower-hybrids
  • timerun-pwheel-hybrids
  • Release/v5.0.3
  • Release/v5.0.1
  • Release/5.0.0-RC
  • Nuget/v0.11.4-DEV
  • Release/v0.11.4-DEV
  • Release/4.3.4-DEV
  • Release/4.3.3
  • Release/4.3.2-RC
  • Release/v4.3.0-DEV
  • Release/4.2.7
  • XMLConverterTool/4.2.6.0
  • Release/4.2.6-RC
  • Release/v4.2.5
  • Release/v4.2.3
  • Release/v4.2.2.3539-RC
  • Release/v4.2.1.3469
  • Release/v0.11.2.3456-DEV
  • Release/v4.2.0.3448-RC
  • Release/v4.1.3.3415
  • Release/v4.1.1.3413
41 results

CompletedBus_39a.vecto

Blame
  • Forked from VECTO / VECTO Sim
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    ADASTestsPEV.cs 6.79 KiB
    using System.IO;
    using System.Linq;
    using NUnit.Framework;
    using TUGraz.VectoCommon.Models;
    using TUGraz.VectoCore.InputData.FileIO.JSON;
    using TUGraz.VectoCore.Models.Simulation.Data;
    using TUGraz.VectoCore.Models.Simulation.Impl;
    using TUGraz.VectoCore.OutputData;
    using TUGraz.VectoCore.OutputData.FileIO;
    using TUGraz.VectoCore.Tests.Utils;
    
    namespace TUGraz.VectoCore.Tests.Integration.ADAS
    {
    	[TestFixture]
    	[Parallelizable(ParallelScope.All)]
    	public class ADASTestsPEV
    	{
    		const string Group5NoPCC = @"TestData\Integration\ADAS-PEV\Group5PCCEng\Class5_Tractor_ENG.vecto";
    		const string Group5PCC12 = @"TestData\Integration\ADAS-PEV\Group5PCCEng\Class5_Tractor_ENG_PCC12.vecto";
    		const string Group5PCC123 = @"TestData\Integration\ADAS-PEV\Group5PCCEng\Class5_Tractor_ENG_PCC123.vecto";
    		const string Group5PCC123EcoSS = @"TestData\Integration\ADAS-PEV\Group5PCCEng\Class5_Tractor_ENG_PCC123EcoSS.vecto";
    
    		[OneTimeSetUp]
    		public void RunBeforeAnyTests() => Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
    
    		private GraphWriter GetGraphWriter()
    		{
    			var graphWriter = new GraphWriter();
    			//#if TRACE
    			graphWriter.Enable();
    			//#else
    			//graphWriter.Disable();
    			//#endif
    			graphWriter.Xfields = new[] { ModalResultField.dist };
    
    			graphWriter.Yfields = new[] {
    				ModalResultField.v_act, ModalResultField.altitude, ModalResultField.acc, ModalResultField.Gear,
    				ModalResultField.EM_E2_Off_,ModalResultField.P_E2_mech_
    			};
    			graphWriter.Series1Label = "ADAS PCC";
    			graphWriter.PlotIgnitionState = true;
    			return graphWriter;
    		}
    
    		[
    		TestCase(Group5NoPCC, 0, TestName = "G5Eng NoPCC CrestCoast 1"),
    		TestCase(Group5NoPCC, 1, TestName = "G5Eng NoPCC CrestCoast 2"),
    		TestCase(Group5NoPCC, 2, TestName = "G5Eng NoPCC Case A"), // Case A: Tests Use-Case 1: Creast Coasting (allowing slower speed before a crest)
    		TestCase(Group5NoPCC, 3, TestName = "G5Eng NoPCC Case B"), // Case B: 
    		TestCase(Group5NoPCC, 4, TestName = "G5Eng NoPCC Case C"), // Case C
    		TestCase(Group5NoPCC, 5, TestName = "G5Eng NoPCC Case D"), // Case D: Test two crests after each other
    		TestCase(Group5NoPCC, 6, TestName = "G5Eng NoPCC Case E"), // Case E
    		TestCase(Group5NoPCC, 7, TestName = "G5Eng NoPCC Case F"), // Case F
    		TestCase(Group5NoPCC, 8, TestName = "G5Eng NoPCC Case G"), // Case G: PCC Use Case 1 even if there is a small dip inbetween (at the crest)
    		TestCase(Group5NoPCC, 9, TestName = "G5Eng NoPCC Case H"), // Case H
    		TestCase(Group5NoPCC, 10, TestName = "G5Eng NoPCC Case I"), // Case I
    		TestCase(Group5NoPCC, 11, TestName = "G5Eng NoPCC Case J"), // Case J
    
    		TestCase(Group5PCC12, 0, TestName = "G5Eng PCC12 CrestCoast 1"),
    		TestCase(Group5PCC12, 1, TestName = "G5Eng PCC12 CrestCoast 2"),
    		TestCase(Group5PCC12, 2, TestName = "G5Eng PCC12 Case A"), // Case A: Tests Use-Case 1: Creast Coasting (allowing slower speed before a crest)
    		TestCase(Group5PCC12, 3, TestName = "G5Eng PCC12 Case B"), // Case B: 
    		TestCase(Group5PCC12, 4, TestName = "G5Eng PCC12 Case C"), // Case C
    		TestCase(Group5PCC12, 5, TestName = "G5Eng PCC12 Case D"), // Case D: Test two crests after each other
    		TestCase(Group5PCC12, 6, TestName = "G5Eng PCC12 Case E"), // Case E
    		TestCase(Group5PCC12, 7, TestName = "G5Eng PCC12 Case F"), // Case F
    		TestCase(Group5PCC12, 8, TestName = "G5Eng PCC12 Case G"), // Case G: PCC Use Case 1 even if there is a small dip inbetween (at the crest)
    		TestCase(Group5PCC12, 9, TestName = "G5Eng PCC12 Case H"), // Case H
    		TestCase(Group5PCC12, 10, TestName = "G5Eng PCC12 Case I"), // Case I
    		TestCase(Group5PCC12, 11, TestName = "G5Eng PCC12 Case J"), // Case J
    
    		TestCase(Group5PCC123, 2, TestName = "G5Eng PCC123 Case A"), // Case A
    		TestCase(Group5PCC123, 3, TestName = "G5Eng PCC123 Case B"), // Case B
    		TestCase(Group5PCC123, 4, TestName = "G5Eng PCC123 Case C"), // Case C
    		TestCase(Group5PCC123, 5, TestName = "G5Eng PCC123 Case D"), // Case D
    		TestCase(Group5PCC123, 6, TestName = "G5Eng PCC123 Case E"), // Case E
    		TestCase(Group5PCC123, 7, TestName = "G5Eng PCC123 Case F"), // Case F
    		TestCase(Group5PCC123, 8, TestName = "G5Eng PCC123 Case G"), // Case G
    		TestCase(Group5PCC123, 9, TestName = "G5Eng PCC123 Case H"), // Case H
    		TestCase(Group5PCC123, 10, TestName = "G5Eng PCC123 Case I"), // Case I
    		TestCase(Group5PCC123, 11, TestName = "G5Eng PCC123 Case J"), // Case J
    
    		TestCase(Group5PCC123EcoSS, 2, TestName = "G5Eng PCC123EcoSS Case A"), // Case A should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 3, TestName = "G5Eng PCC123EcoSS Case B"), // Case B should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 4, TestName = "G5Eng PCC123EcoSS Case C"), // Case C should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 5, TestName = "G5Eng PCC123EcoSS Case D"), // Case D should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 6, TestName = "G5Eng PCC123EcoSS Case E"), // Case E should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 7, TestName = "G5Eng PCC123EcoSS Case F"), // Case F should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 8, TestName = "G5Eng PCC123EcoSS Case G"), // Case G should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 9, TestName = "G5Eng PCC123EcoSS Case H"), // Case H should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 10, TestName = "G5Eng PCC123EcoSS Case I"), // Case I should behave same as PCC123 (eco roll always off in PEV)
    		TestCase(Group5PCC123EcoSS, 11, TestName = "G5Eng PCC123EcoSS Case J"), // Case J should behave same as PCC123 (eco roll always off in PEV)
    		]
    		public void TestPCCEngineeringSampleCases(string jobName, int cycleIdx)
    		{
    			RunSingleEngineeringCycle(jobName, cycleIdx);
    		}
    
    		public void RunSingleEngineeringCycle(string jobName, int cycleIdx)
    		{
    			var inputData = JSONInputDataFactory.ReadJsonJob(jobName);
    			var writer = new FileOutputWriter(Path.Combine(Path.GetDirectoryName(jobName), Path.GetFileName(jobName)));
    
    			var sumContainer = new SummaryDataContainer(writer);
    			var jobContainer = new JobContainer(sumContainer);
    			var factory = new SimulatorFactory(ExecutionMode.Engineering, inputData, writer) {
    				WriteModalResults = true,
    				//ActualModalData = true,
    				Validate = false,
    				SumData = sumContainer
    			};
    
    			var runs = factory.SimulationRuns().ToArray();
    			var run = runs[cycleIdx];
    
    			jobContainer.AddRun(run);
    			jobContainer.Execute();
    			jobContainer.WaitFinished();
    
    			var progress = jobContainer.GetProgress();
    			Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat(progress.Select(r => r.Value.Error)));
    			var modFilename = writer.GetModDataFileName(run.RunName, run.CycleName, run.RunSuffix);
    			GetGraphWriter().Write(modFilename);
    		}
    	}
    }