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
Commit 9d2ac812 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge branch 'feature/VECTO-1731-declaration-mode-xev-primary-bus' of...

Merge branch 'feature/VECTO-1731-declaration-mode-xev-primary-bus' of https://citnet.tech.ec.europa.eu/CITnet/stash/scm/vecto/mq_vecto-dev into feature/VECTO-1731-declaration-mode-xev-primary-bus
parents 844dbd59 90a0ddad
No related branches found
No related tags found
No related merge requests found
...@@ -4,6 +4,7 @@ using System.IO; ...@@ -4,6 +4,7 @@ using System.IO;
using System.Linq; using System.Linq;
using System.Net.Http.Headers; using System.Net.Http.Headers;
using System.Reflection; using System.Reflection;
using System.Threading;
using System.Xml; using System.Xml;
using Microsoft.VisualStudio.TestPlatform.ObjectModel; using Microsoft.VisualStudio.TestPlatform.ObjectModel;
using Newtonsoft.Json; using Newtonsoft.Json;
...@@ -38,17 +39,27 @@ public class PrimaryBusSimulation ...@@ -38,17 +39,27 @@ public class PrimaryBusSimulation
private const string BASE_DIR_COMPLETED = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus"; 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 const string BASE_DIR_VIF = @"TestData\Integration\DeclarationMode\2nd_AmendmDeclMode\CompletedBus\VIF";
private StandardKernel _kernel; private ThreadLocal<StandardKernel> _kernel;
private StandardKernel Kernel => _kernel.Value;
private IXMLInputDataReader _xmlReader; private IXMLInputDataReader _xmlReader;
[OneTimeSetUp] [OneTimeSetUp]
public void OneTimeSetup() public void OneTimeSetup()
{ {
_kernel = new StandardKernel(new VectoNinjectModule()); _kernel = new ThreadLocal<StandardKernel>(() => new StandardKernel(new VectoNinjectModule()));
_xmlReader = _kernel.Get<IXMLInputDataReader>(); _xmlReader = Kernel.Get<IXMLInputDataReader>();
_kernel.Rebind<IDeclarationCycleFactory>().To<TestDeclarationCycleFactoryVariant>().InSingletonScope(); }
var cycleFactory = _kernel.Get<IDeclarationCycleFactory>() as TestDeclarationCycleFactoryVariant;
[SetUp]
public void Setup()
{
Kernel.Rebind<IDeclarationCycleFactory>().To<TestDeclarationCycleFactoryVariant>().InSingletonScope();
var cycleFactory = Kernel.Get<IDeclarationCycleFactory>() as TestDeclarationCycleFactoryVariant;
cycleFactory.Variant = "Short_10"; cycleFactory.Variant = "Short_10";
} }
...@@ -98,12 +109,12 @@ public class PrimaryBusSimulation ...@@ -98,12 +109,12 @@ public class PrimaryBusSimulation
public void CompletedBusSimulationTest(string vifFile, string completed, int runIdx, bool full_sim = false) public void CompletedBusSimulationTest(string vifFile, string completed, int runIdx, bool full_sim = false)
{ {
if (full_sim) { if (full_sim) {
_kernel.Rebind<IDeclarationCycleFactory>().To<DeclarationCycleFactory>().InSingletonScope(); Kernel.Rebind<IDeclarationCycleFactory>().To<DeclarationCycleFactory>().InSingletonScope();
} }
var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), Path.Combine(BASE_DIR_COMPLETED, completed)); var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), Path.Combine(BASE_DIR_COMPLETED, completed));
_kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope(); Kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope();
var missionFilter = _kernel.Get<IMissionFilter>() as TestMissionFilter; var missionFilter = Kernel.Get<IMissionFilter>() as TestMissionFilter;
missionFilter!.SetMissions((MissionType.Coach, LoadingType.ReferenceLoad)); missionFilter!.SetMissions((MissionType.Coach, LoadingType.ReferenceLoad));
var finalVif = CreateCompletedVIF(completedJob); var finalVif = CreateCompletedVIF(completedJob);
...@@ -116,11 +127,11 @@ public class PrimaryBusSimulation ...@@ -116,11 +127,11 @@ public class PrimaryBusSimulation
public void CompletedBusCycleSection(string vifFile, string completed, double start, public void CompletedBusCycleSection(string vifFile, string completed, double start,
double? distance = null) double? distance = null)
{ {
_kernel.Rebind<IDeclarationCycleFactory>().To<TestDeclarationCycleFactoryStartPoint>().InSingletonScope(); Kernel.Rebind<IDeclarationCycleFactory>().To<TestDeclarationCycleFactoryStartPoint>().InSingletonScope();
var cycleFactory = _kernel.Get<IDeclarationCycleFactory>() as TestDeclarationCycleFactoryStartPoint; var cycleFactory = Kernel.Get<IDeclarationCycleFactory>() as TestDeclarationCycleFactoryStartPoint;
_kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope(); Kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope();
var missionFilter = _kernel.Get<IMissionFilter>() as TestMissionFilter; var missionFilter = Kernel.Get<IMissionFilter>() as TestMissionFilter;
missionFilter!.SetMissions((MissionType.Interurban, LoadingType.ReferenceLoad)); missionFilter!.SetMissions((MissionType.Interurban, LoadingType.ReferenceLoad));
cycleFactory!.SetStartPoint(MissionType.Interurban, start.SI<Meter>(), true, distance?.SI<Meter>()); cycleFactory!.SetStartPoint(MissionType.Interurban, start.SI<Meter>(), true, distance?.SI<Meter>());
var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile), var completedJob = GenerateJsonJobCompletedBus(Path.Combine(BASE_DIR_VIF, vifFile),
...@@ -165,8 +176,8 @@ public class PrimaryBusSimulation ...@@ -165,8 +176,8 @@ public class PrimaryBusSimulation
] ]
public void TestFactorMethodRunData(string primary, string completed, string vifFile, MissionType mission, LoadingType loading) public void TestFactorMethodRunData(string primary, string completed, string vifFile, MissionType mission, LoadingType loading)
{ {
_kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope(); Kernel.Rebind<IMissionFilter>().To<TestMissionFilter>().InSingletonScope();
var missionFilter = _kernel.Get<IMissionFilter>() as TestMissionFilter; var missionFilter = Kernel.Get<IMissionFilter>() as TestMissionFilter;
missionFilter!.SetMissions((mission, loading)); missionFilter!.SetMissions((mission, loading));
var outputPath = Path.Combine("FactorMethod_xEV", TestContext.CurrentContext.Test.Name.Split(' ').Skip(3).Join("_")); var outputPath = Path.Combine("FactorMethod_xEV", TestContext.CurrentContext.Test.Name.Split(' ').Skip(3).Join("_"));
...@@ -177,7 +188,7 @@ public class PrimaryBusSimulation ...@@ -177,7 +188,7 @@ public class PrimaryBusSimulation
var singleJob = GenerateJsonJobSingleBus(Path.Combine(BASE_DIR, primary), Path.Combine(BASE_DIR_COMPLETED, completed)); var singleJob = GenerateJsonJobSingleBus(Path.Combine(BASE_DIR, primary), Path.Combine(BASE_DIR_COMPLETED, completed));
var dataProviderSingle = JSONInputDataFactory.ReadJsonJob(singleJob); var dataProviderSingle = JSONInputDataFactory.ReadJsonJob(singleJob);
var fileWriterSingle = new FileOutputWriter(singleJob); var fileWriterSingle = new FileOutputWriter(singleJob);
var simFactorySingle = _kernel.Get<ISimulatorFactoryFactory>(); var simFactorySingle = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactorySingle = simFactorySingle.Factory(ExecutionMode.Declaration, dataProviderSingle, fileWriterSingle, null, null); var runsFactorySingle = simFactorySingle.Factory(ExecutionMode.Declaration, dataProviderSingle, fileWriterSingle, null, null);
SerializeRunData(runsFactorySingle, outputPath); SerializeRunData(runsFactorySingle, outputPath);
...@@ -186,7 +197,7 @@ public class PrimaryBusSimulation ...@@ -186,7 +197,7 @@ public class PrimaryBusSimulation
var filePathPrim = Path.Combine(BASE_DIR, primary); var filePathPrim = Path.Combine(BASE_DIR, primary);
var dataProviderPrim = _xmlReader.CreateDeclaration(filePathPrim); var dataProviderPrim = _xmlReader.CreateDeclaration(filePathPrim);
var fileWriterPrim = new FileOutputWriter(filePathPrim); var fileWriterPrim = new FileOutputWriter(filePathPrim);
var simFactoryPrim = _kernel.Get<ISimulatorFactoryFactory>(); var simFactoryPrim = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactoryPrim = simFactoryPrim.Factory(ExecutionMode.Declaration, dataProviderPrim, fileWriterPrim, null, null); var runsFactoryPrim = simFactoryPrim.Factory(ExecutionMode.Declaration, dataProviderPrim, fileWriterPrim, null, null);
SerializeRunData(runsFactoryPrim, outputPath); SerializeRunData(runsFactoryPrim, outputPath);
...@@ -196,7 +207,7 @@ public class PrimaryBusSimulation ...@@ -196,7 +207,7 @@ public class PrimaryBusSimulation
var dataProviderComleted = JSONInputDataFactory.ReadJsonJob(completedJob); var dataProviderComleted = JSONInputDataFactory.ReadJsonJob(completedJob);
var fileWriterCompleted = new FileOutputWriter(singleJob); var fileWriterCompleted = new FileOutputWriter(singleJob);
var simFactoryCompleted = _kernel.Get<ISimulatorFactoryFactory>(); var simFactoryCompleted = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactoryCompleted = simFactoryCompleted.Factory(ExecutionMode.Declaration, dataProviderComleted, fileWriterCompleted, null, null); var runsFactoryCompleted = simFactoryCompleted.Factory(ExecutionMode.Declaration, dataProviderComleted, fileWriterCompleted, null, null);
var jobContainer = new JobContainer(new SummaryDataContainer(fileWriterCompleted)) { }; var jobContainer = new JobContainer(new SummaryDataContainer(fileWriterCompleted)) { };
jobContainer.AddRuns(runsFactoryCompleted); jobContainer.AddRuns(runsFactoryCompleted);
...@@ -209,7 +220,7 @@ public class PrimaryBusSimulation ...@@ -209,7 +220,7 @@ public class PrimaryBusSimulation
var dataProviderVif = _xmlReader.CreateDeclaration(vif.Value) as IMultistepBusInputDataProvider; var dataProviderVif = _xmlReader.CreateDeclaration(vif.Value) as IMultistepBusInputDataProvider;
var dataProviderFinal = new XMLDeclarationVIFInputData(dataProviderVif, null, true); var dataProviderFinal = new XMLDeclarationVIFInputData(dataProviderVif, null, true);
var fileWriterFinal = new FileOutputWriter(filePathPrim); var fileWriterFinal = new FileOutputWriter(filePathPrim);
var simFactoryFinal = _kernel.Get<ISimulatorFactoryFactory>(); var simFactoryFinal = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactoryFinal = simFactoryFinal.Factory(ExecutionMode.Declaration, dataProviderFinal, fileWriterFinal, null, null); var runsFactoryFinal = simFactoryFinal.Factory(ExecutionMode.Declaration, dataProviderFinal, fileWriterFinal, null, null);
SerializeRunData(runsFactoryFinal, outputPath); SerializeRunData(runsFactoryFinal, outputPath);
...@@ -234,7 +245,7 @@ public class PrimaryBusSimulation ...@@ -234,7 +245,7 @@ public class PrimaryBusSimulation
var singleJob = GenerateJsonJobSingleBus(Path.Combine(BASE_DIR, jobFile), Path.Combine(BASE_DIR_COMPLETED, completed)); var singleJob = GenerateJsonJobSingleBus(Path.Combine(BASE_DIR, jobFile), Path.Combine(BASE_DIR_COMPLETED, completed));
var dataProvider = JSONInputDataFactory.ReadJsonJob(singleJob); var dataProvider = JSONInputDataFactory.ReadJsonJob(singleJob);
var fileWriter = new FileOutputWriter(singleJob); var fileWriter = new FileOutputWriter(singleJob);
var simFactory = _kernel.Get<ISimulatorFactoryFactory>(); var simFactory = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null); var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
//runsFactory.WriteModalResults = true; //runsFactory.WriteModalResults = true;
...@@ -292,7 +303,7 @@ public class PrimaryBusSimulation ...@@ -292,7 +303,7 @@ public class PrimaryBusSimulation
var filePath = Path.Combine(BASE_DIR, jobFile); var filePath = Path.Combine(BASE_DIR, jobFile);
var dataProvider = JSONInputDataFactory.ReadJsonJob(filePath); var dataProvider = JSONInputDataFactory.ReadJsonJob(filePath);
var fileWriter = new FileOutputWriter(filePath); var fileWriter = new FileOutputWriter(filePath);
var simFactory = _kernel.Get<ISimulatorFactoryFactory>(); var simFactory = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null); var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
...@@ -319,7 +330,7 @@ public class PrimaryBusSimulation ...@@ -319,7 +330,7 @@ public class PrimaryBusSimulation
var filePath = Path.Combine(BASE_DIR, jobFile); var filePath = Path.Combine(BASE_DIR, jobFile);
var dataProvider = _xmlReader.CreateDeclaration(filePath); var dataProvider = _xmlReader.CreateDeclaration(filePath);
var fileWriter = new FileOutputWriter(filePath); var fileWriter = new FileOutputWriter(filePath);
var simFactory = _kernel.Get<ISimulatorFactoryFactory>(); var simFactory = Kernel.Get<ISimulatorFactoryFactory>();
var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null); var runsFactory = simFactory.Factory(ExecutionMode.Declaration, dataProvider, fileWriter, null, null);
runsFactory.WriteModalResults = true; runsFactory.WriteModalResults = true;
runsFactory.SerializeVectoRunData = true; runsFactory.SerializeVectoRunData = true;
......
...@@ -43,7 +43,10 @@ namespace TUGraz.VectoCore.Tests.Utils ...@@ -43,7 +43,10 @@ namespace TUGraz.VectoCore.Tests.Utils
{ {
private const string BASE_PATH = "Resources/Missions/"; private const string BASE_PATH = "Resources/Missions/";
public TestDeclarationCycleFactoryVariant() { } public TestDeclarationCycleFactoryVariant()
{
}
public string Variant { get; set; } = "Short_10"; public string Variant { get; set; } = "Short_10";
...@@ -57,6 +60,7 @@ namespace TUGraz.VectoCore.Tests.Utils ...@@ -57,6 +60,7 @@ namespace TUGraz.VectoCore.Tests.Utils
var cycleFile = Path.Combine(BASE_PATH, Variant, var cycleFile = Path.Combine(BASE_PATH, Variant,
missionType.ToString().Replace("EMS", "") + ".vdri"); missionType.ToString().Replace("EMS", "") + ".vdri");
if (File.Exists(cycleFile)) { if (File.Exists(cycleFile)) {
TestContext.Progress.WriteLine($"[{nameof(TestDeclarationCycleFactoryVariant)}] - Using {cycleFile}");
var cycle = File.OpenRead(cycleFile); var cycle = File.OpenRead(cycleFile);
return DrivingCycleDataReader.ReadFromStream(cycle, CycleType.DistanceBased, "", false); return DrivingCycleDataReader.ReadFromStream(cycle, CycleType.DistanceBased, "", false);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment