Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 406b45be authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

adding testcases for completed buses

parent b170219a
No related branches found
No related tags found
No related merge requests found
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Newtonsoft.Json;
using Ninject;
using NUnit.Framework;
using NUnit.Framework.Internal;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCore.InputData.FileIO.JSON;
using TUGraz.VectoCore.InputData.FileIO.XML;
using TUGraz.VectoCore.Models.Simulation;
using TUGraz.VectoCore.Models.Simulation.Impl;
using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory;
using TUGraz.VectoCore.OutputData;
using TUGraz.VectoCore.OutputData.FileIO;
using TUGraz.VectoCore.Tests.Models.Simulation;
......@@ -16,7 +23,10 @@ public class PrimaryBusSimulation
{
private const string BASE_DIR = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\";
private StandardKernel _kernel;
private const string BASE_DIR_COMPLETED = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus";
private const string BASE_DIR_VIF = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus\VIF";
private StandardKernel _kernel;
private IXMLInputDataReader _xmlReader;
[OneTimeSetUp]
......@@ -48,18 +58,65 @@ public class PrimaryBusSimulation
]
public void PrimaryBusSimulationTest(string jobFile, int runIdx)
{
RunSimulation(jobFile, runIdx);
RunSimulationPrimary(jobFile, runIdx);
}
[
TestCase(@"primary_heavyBus group41_nonSmart.RSLT_VIF.xml", @"Conventional_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus Conventional"),
TestCase(@"PEV_primaryBus_AMT_E2.RSLT_VIF.xml", @"PEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus PEV E2"),
TestCase(@"PrimaryCoach_E2_Base_AMT.RSLT_VIF.xml", @"PEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus Coach PEV E2"),
TestCase(@"PrimaryCityBus_IEPC_Base.RSLT_VIF.xml", @"PEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus CityBus PEV IEPC"),
TestCase(@"PrimaryCoach_P2_HEV_Base_AMT.RSLT_VIF.xml", @"HEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus Coach PEV P2"),
TestCase(@"PrimaryCoach_P2_HEV_AMT_OVC.RSLT_VIF.xml", @"HEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus Coach PEV P2 OVC"),
TestCase(@"PrimaryCityBus_P1_HEV_Base_AT.RSLT_VIF.xml", @"HEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus CityBus PEV P1"),
TestCase(@"PrimaryCoach_S2_Base_AMT.RSLT_VIF.xml", @"HEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus Coach PEV S2"),
TestCase(@"PrimaryCityBus_IEPC-S_Base.RSLT_VIF.xml", @"HEV_completedBus_2.xml", 1, TestName = "2nd Amendment CompletedBus CityBus PEV IEPC-S"),
TestCase(@"exempted_primary_heavyBus.RSLT_VIF.xml", @"exempted_completedBus_input_full.xml", 1, TestName = "2nd Amendment CompletedBus Exempted"),
]
public void CompletedBusSimulationTest(string vifFile, string completed, int runIdx)
{
var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), Path.Combine(BASE_DIR_COMPLETED, completed));
var finalVif = CreateCompletedVIF(completedJob);
public void RunSimulation(string jobFile, int runIdx)
//RunSimulationPrimary(finalVif, runIdx);
}
public string CreateCompletedVIF(string jobFile)
{
var filePath = Path.Combine(BASE_DIR, jobFile);
var dataProvider = JSONInputDataFactory.ReadJsonJob(filePath);
var fileWriter = new FileOutputWriter(filePath);
var simFactory = _kernel.Get<ISimulatorFactoryFactory>();
var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
//runsFactory.WriteModalResults = true;
runsFactory.SerializeVectoRunData = true;
var jobContainer = new JobContainer(new SummaryDataContainer(fileWriter)) { };
//var jobContainer = new JobContainer(new MockSumWriter()) { };
jobContainer.AddRuns(runsFactory);
//PrintRuns(jobContainer, null);
jobContainer.Execute();
jobContainer.WaitFinished();
Assert.IsTrue(jobContainer.AllCompleted);
Assert.IsTrue(jobContainer.Runs.TrueForAll(runEntry => runEntry.Success));
//PrintRuns(jobContainer, fileWriter);
PrintFiles(fileWriter);
return fileWriter.GetWrittenFiles()[ReportType.DeclarationReportMultistageVehicleXML];
}
public void RunSimulationPrimary(string jobFile, int runIdx)
{
var filePath = Path.Combine(BASE_DIR, jobFile);
var dataProvider = _xmlReader.CreateDeclaration(filePath);
var fileWriter = new FileOutputWriter(filePath);
var runsFactory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, dataProvider, fileWriter);
runsFactory.WriteModalResults = true;
var jobContainer = new JobContainer(new MockSumWriter()) { };
var simFactory = _kernel.Get<ISimulatorFactoryFactory>();
var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
//runsFactory.WriteModalResults = true;
//runsFactory.SerializeVectoRunData = true;
var jobContainer = new JobContainer(new SummaryDataContainer(fileWriter)) { };
//var jobContainer = new JobContainer(new MockSumWriter()) { };
if (runIdx < 0) {
......@@ -79,12 +136,37 @@ public class PrimaryBusSimulation
jobContainer.WaitFinished();
Assert.IsTrue(jobContainer.AllCompleted);
Assert.IsTrue(jobContainer.Runs.TrueForAll(runEntry => runEntry.Success));
PrintRuns(jobContainer, fileWriter);
PrintFiles(fileWriter);
}
private void PrintRuns(JobContainer jobContainer, FileOutputWriter fileWriter = null)
private string GenerateJsonJobCompletedBus(string vif, string completeBusInput)
{
var subDirectory = Path.GetDirectoryName(completeBusInput);
var header = new Dictionary<string, object>() {
{ "FileVersion", 7 }
};
var body = new Dictionary<string, object>() {
{ "PrimaryVehicleResults", Path.GetRelativePath(subDirectory, Path.GetFullPath(vif)) },
{ "CompletedVehicle", Path.GetRelativePath(subDirectory, Path.GetFullPath(completeBusInput)) },
{ "RunSimulation", true}
};
var json = new Dictionary<string, object>() {
{"Header", header},
{"Body", body}
};
Directory.CreateDirectory(Path.GetFullPath(subDirectory));
var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), Path.GetFileNameWithoutExtension(vif) + ".vecto");
var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented);
File.WriteAllText(path, str);
return path;
}
private void PrintRuns(JobContainer jobContainer, FileOutputWriter fileWriter = null)
{
foreach (var keyValuePair in jobContainer.GetProgress()) {
TestContext.WriteLine($"{keyValuePair.Key}: {keyValuePair.Value.CycleName} {keyValuePair.Value.RunName} {keyValuePair.Value.Error?.Message}");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment