From 814ff3e2b0787367236fd677a8840914b76b268f Mon Sep 17 00:00:00 2001 From: "harald.martini@student.tugraz.at" <harald.martini@student.tugraz.at> Date: Wed, 4 Aug 2021 14:53:38 +0200 Subject: [PATCH] Implemented GetWrittenFiles in TempFileOutputWriter, updated Testfiles --- VECTO.sln | 45 ++++++ .../Simulation/Impl/SimulatorFactory.cs | 3 +- .../OutputData/FileIO/FileOutputWriter.cs | 2 +- .../OutputData/FileIO/TempFileOutputWriter.cs | 11 +- .../Multistage/MultistageMultipleRunsTest.cs | 129 ++++++++++++++---- .../Multistage/newVifCompletedDiesel.json | 4 +- .../Multistage/newVifExemptedIncomplete.json | 13 ++ .../Multistage/newVifInterimDiesel.json | 13 ++ ...ecto_vehicle-exempted_input_incomplete.xml | 25 ++++ ...e-stage_input_full-sample_interim_noNG.xml | 89 ++++++++++++ VectoCore/VectoCoreTest/VectoCoreTest.csproj | 12 ++ 11 files changed, 310 insertions(+), 36 deletions(-) create mode 100644 VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.json create mode 100644 VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.json create mode 100644 VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-exempted_input_incomplete.xml create mode 100644 VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-stage_input_full-sample_interim_noNG.xml diff --git a/VECTO.sln b/VECTO.sln index 8b72b482c4..fb0a7c6567 100644 --- a/VECTO.sln +++ b/VECTO.sln @@ -72,6 +72,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VECTO3GUI2020", "VECTO3GUI2 EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vecto3GUI2020Test", "Vecto3GUI2020Test\Vecto3GUI2020Test.csproj", "{7F4FF473-96B3-461E-9CE6-76D3B75F87CB}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ParameterDocumentation", "..\vecto-SchemaDocumentation\ParameterDocumentation\ParameterDocumentation.csproj", "{E672322E-44DC-41C8-A3A4-603233C72F92}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug PerformanceStats|Any CPU = Debug PerformanceStats|Any CPU @@ -861,6 +863,48 @@ Global {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x64.Build.0 = Release|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU {7F4FF473-96B3-461E-9CE6-76D3B75F87CB}.ReleaseTUG|x86.Build.0 = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceStats|Any CPU.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceStats|Any CPU.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceStats|x64.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceStats|x64.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceStats|x86.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceStats|x86.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceTrace|Any CPU.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceTrace|Any CPU.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceTrace|x64.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceTrace|x64.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceTrace|x86.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug PerformanceTrace|x86.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug|x64.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug|x64.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug|x86.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Debug|x86.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.DebugTUG|Any CPU.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.DebugTUG|Any CPU.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.DebugTUG|x64.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.DebugTUG|x64.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.DebugTUG|x86.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.DebugTUG|x86.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Deploy|Any CPU.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Deploy|Any CPU.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Deploy|x64.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Deploy|x64.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Deploy|x86.ActiveCfg = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Deploy|x86.Build.0 = Debug|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Release|Any CPU.Build.0 = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Release|x64.ActiveCfg = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Release|x64.Build.0 = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Release|x86.ActiveCfg = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.Release|x86.Build.0 = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.ReleaseTUG|Any CPU.ActiveCfg = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.ReleaseTUG|Any CPU.Build.0 = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.ReleaseTUG|x64.ActiveCfg = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.ReleaseTUG|x64.Build.0 = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.ReleaseTUG|x86.ActiveCfg = Release|Any CPU + {E672322E-44DC-41C8-A3A4-603233C72F92}.ReleaseTUG|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -883,6 +927,7 @@ Global {760C1C5B-A767-463E-BA85-F0BCFC23A550} = {73A5BF70-6168-456F-95E5-A1402BFA488C} {C234077C-F81E-42FA-9367-1319753678A6} = {D29E62A2-CF08-469F-B29F-1B25DCB35386} {DD260CC4-7978-45E3-8646-AD4F5E6A8FA2} = {C4D97EBF-BA80-4943-9D27-33179405D8D5} + {E672322E-44DC-41C8-A3A4-603233C72F92} = {351FF7E8-B56B-445E-8E98-A61E07C990DA} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {B38F3172-132E-43F7-9C4B-5FDC3A28C051} diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs index 256997d983..7c9aa0b33f 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/SimulatorFactory.cs @@ -234,8 +234,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl DataReader = new DeclarationModePrimaryBusVectoRunDataFactory(multiStagePrimaryAndStageInputData.PrimaryVehicle, tempPrimaryReport); - var reportPrimary = declarationReport ?? - new XMLDeclarationReportPrimaryVehicle(ReportWriter, + var reportPrimary = new XMLDeclarationReportPrimaryVehicle(ReportWriter, true); diff --git a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs index ece3596e1b..f6b382f1f2 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/FileOutputWriter.cs @@ -51,7 +51,7 @@ namespace TUGraz.VectoCore.OutputData.FileIO public string JobFile => _jobFile; private ConcurrentDictionary<ReportType, string> _writtenReports = new ConcurrentDictionary<ReportType, string>(); - public IDictionary<ReportType, string> GetWrittenFiles() + public virtual IDictionary<ReportType, string> GetWrittenFiles() { return _writtenReports; } diff --git a/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs index 5a280d8c7d..a6c934e957 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/TempFileOutputWriter.cs @@ -7,7 +7,7 @@ using TUGraz.VectoCommon.Models; namespace TUGraz.VectoCore.OutputData.FileIO { - public class TempFileOutputWriter : FileOutputWriter, IOutputDataWriter + public class TempFileOutputWriter : FileOutputWriter { private Dictionary<ReportType, XDocument> _writtenReports = new Dictionary<ReportType, XDocument>(); @@ -16,6 +16,15 @@ namespace TUGraz.VectoCore.OutputData.FileIO } + #region Overrides of FileOutputWriter + + public override IDictionary<ReportType, string> GetWrittenFiles() + { + return new Dictionary<ReportType, string>(); + } + + #endregion + protected TempFileOutputWriter(string jobFile, int numberOfManufacturingStages) : base(jobFile, numberOfManufacturingStages) { diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs index edb1cefccb..c635441bc2 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageMultipleRunsTest.cs @@ -19,9 +19,13 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage public class MultistageMultipleRunsTest { private const string TestDataDir = "TestData\\Integration\\Multistage\\"; + private const string CompletedDiesel = TestDataDir + "newVifCompletedDiesel.json"; private const string CompletedExempted = TestDataDir + "newVifExempted.json"; + private const string InterimExempted = TestDataDir + "newVifExemptedIncomplete.json"; + private const string InterimDiesel = TestDataDir + "newVifInterimDiesel.json"; + private FileOutputWriter _sumFileWriter; private SummaryDataContainer _sumContainer; private JobContainer _jobContainer; @@ -29,6 +33,8 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage private string _outputDirectory; + private Stopwatch _stopWatch; + [OneTimeSetUp] public void OneTimeSetUp() { @@ -38,33 +44,29 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage [SetUp] public void SetUp() { + _stopWatch = new Stopwatch(); + _stopWatch.Start(); _outputDirectory = TestContext.CurrentContext.TestDirectory + TestContext.CurrentContext.Test.Name; _sumFileWriter = new FileOutputWriter(_outputDirectory); _sumContainer = new SummaryDataContainer(_sumFileWriter); _jobContainer = new JobContainer(_sumContainer); } - [Test, Timeout(3000)] + [TearDown] + public void TearDown() + { + _stopWatch.Stop(); + TestContext.WriteLine($"Execution time: {_stopWatch.Elapsed}"); + } + + [Test]//, Timeout(3000)] public void ExemptedPrimaryAndCompletedTest() { var inputFile = Path.GetFullPath(CompletedExempted); - var input = JSONInputDataFactory.ReadJsonJob(Path.GetFullPath(CompletedExempted)); - var fileWriter = new FileOutputWriter(_outputDirectory); - var runsFactory = new SimulatorFactory(_mode, input, fileWriter) - { - WriteModalResults = true, - ModalResults1Hz = true, - Validate = true, - ActualModalData = true, - SerializeVectoRunData = true, - }; + var input = JSONInputDataFactory.ReadJsonJob(inputFile); + var fileWriter = StartSimulation(input); - var timeout = 1000; - - - _jobContainer.AddRuns(runsFactory); - _jobContainer.Execute(); while (!_jobContainer.AllCompleted) { //Busy wait } @@ -78,42 +80,109 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage } - private void ShowWrittenFiles(IDictionary<ReportType, string> getWrittenFiles) + + [Test]//, Timeout(3000)] + public void ExemptedPrimaryAndInterimTest() { - if (getWrittenFiles.Count == 0) { - TestContext.WriteLine("No Files Written"); - } - foreach (var keyValuePair in getWrittenFiles) { - TestContext.WriteLine(keyValuePair.Key.ToString()); - TestContext.WriteLine(keyValuePair.Value.ToString()); + var inputFile = Path.GetFullPath(InterimExempted); + var input = JSONInputDataFactory.ReadJsonJob(inputFile); + var fileWriter = StartSimulation(input); + + + while (!_jobContainer.AllCompleted) + { + //Busy wait } - } - [TestCase] - public void ExemptedPrimaryAndInterimTest() - { + var writtenFiles = fileWriter.GetWrittenFiles(); + ShowWrittenFiles(fileWriter.GetWrittenFiles()); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportManufacturerXML)); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportCustomerXML)); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportMultistageVehicleXML)); } - [TestCase] + //SpecialCase II + [Test, Timeout(1000 * 10 * 60)] public void PrimaryAndCompletedTest() { + var inputFile = Path.GetFullPath(CompletedDiesel); + var input = JSONInputDataFactory.ReadJsonJob(inputFile); + var fileWriter = StartSimulation(input); + while (!_jobContainer.AllCompleted) + { + //Busy wait + } + + var writtenFiles = fileWriter.GetWrittenFiles(); + ShowWrittenFiles(fileWriter.GetWrittenFiles()); + + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportManufacturerXML)); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportCustomerXML)); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportMultistageVehicleXML)); + } - [TestCase] + //SpecialCase I + [Test, Timeout(1000 * 10 * 60)] public void PrimaryAndInterimTest() { + var inputFile = Path.GetFullPath(InterimDiesel); + var input = JSONInputDataFactory.ReadJsonJob(inputFile); + var fileWriter = StartSimulation(input); + + + while (!_jobContainer.AllCompleted) + { + //Busy wait + } + + var writtenFiles = fileWriter.GetWrittenFiles(); + ShowWrittenFiles(fileWriter.GetWrittenFiles()); + + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportManufacturerXML)); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportCustomerXML)); + Assert.That(writtenFiles.ContainsKey(ReportType.DeclarationReportMultistageVehicleXML)); + } + + + private FileOutputWriter StartSimulation(IInputDataProvider input) + { + var fileWriter = new FileOutputWriter(_outputDirectory); + var runsFactory = new SimulatorFactory(_mode, input, fileWriter) + { + WriteModalResults = true, + ModalResults1Hz = true, + Validate = true, + ActualModalData = true, + SerializeVectoRunData = true, + }; + var timeout = 1000; + _jobContainer.AddRuns(runsFactory); + _jobContainer.Execute(); + return fileWriter; } + private void ShowWrittenFiles(IDictionary<ReportType, string> getWrittenFiles) + { + if (getWrittenFiles.Count == 0) + { + TestContext.WriteLine("No Files Written"); + } + foreach (var keyValuePair in getWrittenFiles) + { + TestContext.WriteLine(keyValuePair.Key.ToString()); + TestContext.WriteLine(keyValuePair.Value.ToString()); + } + } - } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedDiesel.json b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedDiesel.json index d0005c2097..357fb71856 100644 --- a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedDiesel.json +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifCompletedDiesel.json @@ -6,8 +6,8 @@ "FileVersion": 10 }, "Body": { - "PrimaryVehicle": "C:\\Users\\Harry\\source\\repos\\vecto-dev\\VectoCore\\VectoCoreTest\\TestData\\Integration\\Buses\\PrimaryAndStageInput\\vecto_vehicle-primary_heavyBus-sample_Diesel.xml", - "InterimStage": "C:\\Users\\Harry\\source\\repos\\vecto-dev\\VectoCore\\VectoCoreTest\\TestData\\Integration\\Buses\\PrimaryAndStageInput\\vecto_vehicle-stage_input_full-sample_final_noNG.xml", + "PrimaryVehicle": "vecto_vehicle-primary_heavyBus-sample_Diesel.xml", + "InterimStage": "vecto_vehicle-stage_input_full-sample_final_noNG.xml", "Completed": false } } \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.json b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.json new file mode 100644 index 0000000000..510c14d423 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifExemptedIncomplete.json @@ -0,0 +1,13 @@ +{ + "Header": { + "CreatedBy": "Harry", + "Date": "2021-08-04T00:00:00+02:00", + "AppVersion": "Vecto3GUI2020", + "FileVersion": 10 + }, + "Body": { + "PrimaryVehicle": "exempted_primary_heavyBus.xml", + "InterimStage": "vecto_vehicle-exempted_input_incomplete.xml", + "Completed": false + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.json b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.json new file mode 100644 index 0000000000..0621d36c18 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/newVifInterimDiesel.json @@ -0,0 +1,13 @@ +{ + "Header": { + "CreatedBy": "Harry", + "Date": "2021-08-03T00:00:00+02:00", + "AppVersion": "Vecto3GUI2020", + "FileVersion": 10 + }, + "Body": { + "PrimaryVehicle": "vecto_vehicle-primary_heavyBus-sample_Diesel.xml", + "InterimStage": "vecto_vehicle-stage_input_full-sample_interim_noNG.xml", + "Completed": false + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-exempted_input_incomplete.xml b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-exempted_input_incomplete.xml new file mode 100644 index 0000000000..678ca0a762 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-exempted_input_incomplete.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration schemaVersion="2.8" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" +xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" +xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" +xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" +xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedInterimStageInputType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Infinite Loop</ManufacturerAddress> + <VIN>VEH-1234567891</VIN> + <Date>2021-01-09T11:00:00Z</Date> + <Model>Sample Bus Model 2</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>7000</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>10000</TechnicalPermissibleMaximumLadenMass> + <ClassBus>A</ClassBus> + <!--NumberPassengerSeatsLowerDeck>10</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>42</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>20</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>13</NumberPassengersStandingUpperDeck--> + <BodyworkCode>CE</BodyworkCode> + <LowEntry>true</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-stage_input_full-sample_interim_noNG.xml b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-stage_input_full-sample_interim_noNG.xml new file mode 100644 index 0000000000..3e0e4ace29 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Multistage/vecto_vehicle-stage_input_full-sample_interim_noNG.xml @@ -0,0 +1,89 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.8" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="InterimStageInputType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-07-28T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistage>true</AirdragModifiedMultistage> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS> + <v2.3:EngineStopStart>true</v2.3:EngineStopStart> + <v2.3:EcoRollWithoutEngineStop>false</v2.3:EcoRollWithoutEngineStop> + <v2.3:EcoRollWithEngineStop>false</v2.3:EcoRollWithEngineStop> + <v2.3:PredictiveCruiseControl>none</v2.3:PredictiveCruiseControl> + <v2.3:APTEcoRollReleaseLockupClutch>true</v2.3:APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="CompletedVehicleComponentsDeclarationType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <di:Transforms> + <di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" /> + <di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> + </di:Transforms> + <di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" /> + <di:DigestValue>b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="CompletedVehicleAuxiliaryDataDeclarationType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>2</SystemConfiguration> + <HeatPumpTypeDriverCompartment>R-744</HeatPumpTypeDriverCompartment> + <HeatPumpModeDriverCompartment>heating</HeatPumpModeDriverCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <HeatPumpTypePassengerCompartment>non R-744 3-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>heating</HeatPumpModePassengerCompartment> + <HeatPumpTypePassengerCompartment>non R-744 2-stage</HeatPumpTypePassengerCompartment> + <HeatPumpModePassengerCompartment>cooling</HeatPumpModePassengerCompartment> + <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + <WaterElectricHeater>true</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index a46d747920..2e8fd53e0b 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -2228,12 +2228,18 @@ <None Include="TestData\Integration\Buses\SingleBus.vecto"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Integration\Multistage\newVifInterimDiesel.json"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Integration\Multistage\newVifCompletedDiesel.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> <None Include="TestData\Integration\Multistage\newVifExempted.json"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Integration\Multistage\newVifExemptedIncomplete.json"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Integration\ShiftStrategyV2\CityBus_AT_FCOpt\175kW.vfld"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> @@ -5601,9 +5607,15 @@ <Content Include="TestData\Integration\Multistage\vecto_vehicle-exempted_input_full-sample.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\Integration\Multistage\vecto_vehicle-exempted_input_incomplete.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\Integration\Multistage\vecto_vehicle-primary_heavyBus-sample_Diesel.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="TestData\Integration\Multistage\vecto_vehicle-stage_input_full-sample_interim_noNG.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="TestData\Integration\Multistage\vecto_vehicle-stage_input_full-sample_final_noNG.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> -- GitLab