diff --git a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs index 29f5cf0807e5554ec03ca7a3cb3e6380dfcc696c..f396a746689cd36dee6f3e434b504af99e5ff07a 100644 --- a/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs +++ b/VectoCore/VectoCore/Models/Simulation/Impl/ExemptedRun.cs @@ -64,21 +64,21 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl protected virtual void CheckValidInput() { - if (Container.RunData.MultistageRun) { - return; - } - var vehicleData = Container.RunData.VehicleData; - if (vehicleData.ZeroEmissionVehicle && vehicleData.DualFuelVehicle) { - throw new VectoException("Invalid input: ZE-HDV and DualFuelVehicle are mutually exclusive!"); - } + //if (Container.RunData.MultistageRun) { + // return; + //} + //var vehicleData = Container.RunData.VehicleData; + //if (vehicleData.ZeroEmissionVehicle && vehicleData.DualFuelVehicle) { + // throw new VectoException("Invalid input: ZE-HDV and DualFuelVehicle are mutually exclusive!"); + //} - if (!vehicleData.ZeroEmissionVehicle && !vehicleData.HybridElectricHDV && !vehicleData.DualFuelVehicle) { - throw new VectoException("Invalid input: at least one option of ZE-HDV, He-HDV, and DualFuelVehicle has to be set for an exempted vehicle!"); - } + //if (!vehicleData.ZeroEmissionVehicle && !vehicleData.HybridElectricHDV && !vehicleData.DualFuelVehicle) { + // throw new VectoException("Invalid input: at least one option of ZE-HDV, He-HDV, and DualFuelVehicle has to be set for an exempted vehicle!"); + //} - if (vehicleData.HybridElectricHDV && vehicleData.MaxNetPower1 == null) { - throw new VectoException("For He-HDV both MaxNetPower1 and MaxNetPower2 have to be provided!"); - } + //if (vehicleData.HybridElectricHDV && vehicleData.MaxNetPower1 == null) { + // throw new VectoException("For He-HDV both MaxNetPower1 and MaxNetPower2 have to be provided!"); + //} } protected override IResponse Initialize() diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs index f3a54b028f7b9eb820478ecd0ebf71a3d234c274..b44b48afe0d5bba90a7dd720b43c4af37398a055 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/CustomerInformationFile/CustomerInformationFile_0_9/CIFWriter/VehicleWriter.cs @@ -333,6 +333,8 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation public override XElement GetElement(IDeclarationInputDataProvider inputData) { var vehicleData = inputData.JobInputData.Vehicle; + var tech = new string(vehicleData.ExemptedTechnology + .Where(c => char.IsLetterOrDigit(c) || c == ' ' || c == '.').ToArray()); return new XElement(_cif + XMLNames.Component_Vehicle, new XElement(_cif + XMLNames.Component_Manufacturer, vehicleData.Manufacturer), @@ -343,7 +345,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.CustomerInformation new XElement(_cif + XMLNames.CorrectedActualMass, vehicleData.CurbMassChassis.ToXMLFormat(0)), new XElement(_cif + XMLNames.Vehicle_SleeperCab, vehicleData.SleeperCab), new XElement(_cif + XMLNames.Vehicle_ZeroEmissionVehicle, vehicleData.ZeroEmissionVehicle), - new XElement(_cif + "VehicleTechnologyExempted", vehicleData.ExemptedTechnology) + new XElement(_cif + "VehicleTechnologyExempted", tech) ); } diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs index 4c032ede8c65317f0e5bfb57ac22ca70771bef4b..cca24b5e3574aa3128a383c5bf60d9e1bcf395bd 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/ManufacturerReport_0_9/ManufacturerReportXMLTypeWriter/MRFVehicleWriter.cs @@ -210,14 +210,17 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. public override XElement GetElement(IDeclarationInputDataProvider inputData) { var vehicle = inputData.JobInputData.Vehicle; - return new XElement(_mrf + XMLNames.Component_Vehicle, + var tech = new string(inputData.JobInputData.Vehicle.ExemptedTechnology + .Where(c => char.IsLetterOrDigit(c) || c == ' ' || c == '.').ToArray()); + + return new XElement(_mrf + XMLNames.Component_Vehicle, new XElement(_mrf + XMLNames.Component_Manufacturer, vehicle.Manufacturer), new XElement(_mrf + XMLNames.ManufacturerAddress, vehicle.ManufacturerAddress), _mrfFactory.GetGeneralVehicleOutputGroup().GetElements(vehicle), new XElement(_mrf + XMLNames.CorrectedActualMass, vehicle.CurbMassChassis.ValueAsUnit("kg")), new XElement(_mrf + XMLNames.Vehicle_SleeperCab, vehicle.SleeperCab), new XElement(_mrf + XMLNames.Vehicle_ZeroEmissionVehicle, vehicle.ZeroEmissionVehicle), - new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + "VehicleTechnologyExempted", tech), new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_kW)) ); } @@ -402,9 +405,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport. public override XElement GetElement(IDeclarationInputDataProvider inputData) { + var tech = new string(inputData.JobInputData.Vehicle.ExemptedTechnology + .Where(c => char.IsLetterOrDigit(c) || c == ' ' || c == '.').ToArray()); + return new XElement(_mrf + XMLNames.Component_Vehicle, _mrfFactory.GetExemptedPrimaryBusGeneralVehicleOutputGroup().GetElements(inputData), - new XElement(_mrf + "VehicleTechnologyExempted", inputData.JobInputData.Vehicle.ExemptedTechnology), + new XElement(_mrf + "VehicleTechnologyExempted", tech), new XElement(_mrf + XMLNames.Exempted_SumNetPower, inputData.JobInputData.Vehicle.MaxNetPower1.ValueAsUnit(XMLNames.Unit_kW)) ); } diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs index 1930fd531a408bf3ba92526143f7893b7a5b8e65..b69dcf6fa1bff1f9b20973dc7c8e7c5ae61b662c 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/ExemptedVehicleTest.cs @@ -32,7 +32,9 @@ using System; using System.IO; using System.Linq; +using System.Text.RegularExpressions; using System.Xml; +using System.Xml.Linq; using System.Xml.XPath; using Ninject; using NUnit.Framework; @@ -56,12 +58,13 @@ namespace TUGraz.VectoCore.Tests.Integration [Parallelizable(ParallelScope.All)] public class ExemptedVehicleTest { - const string ExemptedVehicle = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted.xml"; - const string ExemptedVehicleNoHEV = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_nonHEV.xml"; - const string ExemptedVehicleV2 = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2.xml"; - const string ExemptedVehicleV2NoHEV = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2_nonHEV.xml"; + //const string ExemptedVehicle = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted.xml"; + //const string ExemptedVehicleNoHEV = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_nonHEV.xml"; + const string ExemptedVehicleV24 = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24.xml"; + const string ExemptedVehicleV24NoHEV = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_nonHEV.xml"; + const string ExemptedVehicleV24InvisibleChar = @"TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_mupltiplePowertrains_invisibleChar.xml"; - const string ExemptedPrimaryBus = @"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/exempted_primary_heavyBus.xml"; + const string ExemptedPrimaryBus = @"TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/exempted_primary_heavyBus.xml"; protected IXMLInputDataReader xmlInputReader; private IKernel _kernel; @@ -75,13 +78,13 @@ namespace TUGraz.VectoCore.Tests.Integration xmlInputReader = _kernel.Get<IXMLInputDataReader>(); } - [TestCase(ExemptedVehicle, 1), - TestCase(ExemptedVehicleNoHEV, 1), - TestCase(ExemptedVehicleV2, 1), - TestCase(ExemptedVehicleV2NoHEV, 1), - Ignore("ExemptedVehicles XML Version 1.0/2.0 no longer supported") - ] - public void TestSimulationExemptedVehicle(string filename, int numRuns) + [ + TestCase(ExemptedVehicleV24, 1), + TestCase(ExemptedVehicleV24NoHEV, 1), + TestCase(ExemptedVehicleV24InvisibleChar, 1), + + ] + public void TestSimulationExemptedVehicle(string filename, int numRuns) { var writer = new FileOutputWriter(filename); @@ -121,178 +124,25 @@ namespace TUGraz.VectoCore.Tests.Integration var val2 = new XMLValidator(XmlReader.Create(customerFile)); Assert.IsTrue(val2.ValidateXML(XmlDocumentType.CustomerReport), val2.ValidationError); - //var val3 = new XMLValidator(XmlReader.Create(monitoringFile)); - //Assert.IsTrue(val3.ValidateXML(XmlDocumentType.MonitoringReport), val3.ValidationError); - - } - - [TestCase(ExemptedVehicle, true, true, true, "Invalid input: ZE-HDV and DualFuelVehicle are mutually exclusive!"), - TestCase(ExemptedVehicle, true, false, true, "Invalid input: ZE-HDV and DualFuelVehicle are mutually exclusive!"), - TestCase(ExemptedVehicle, false, false, false, "Invalid input: at least one option of ZE-HDV, He-HDV, and DualFuelVehicle has to be set for an exempted vehicle!"), - Ignore("ExemptedVehicles XML Version 1.0 no longer supported") - ] - public void TestInvalidExemptedCombination(string filename, bool zeroEmission, bool hybrid, bool dualFuel, string exMsg) - { - var writer = new FileOutputWriter(InputDataHelper.GetRandomFilename(filename)); - - var customerFile = writer.XMLCustomerReportName; - var manufactuerFile = writer.XMLFullReportName; - var monitoringFile = writer.XMLMonitoringReportName; - if (File.Exists(customerFile)) { - File.Delete(customerFile); - } - if (File.Exists(manufactuerFile)) { - File.Delete(manufactuerFile); - } - if (File.Exists(monitoringFile)) { - File.Delete(monitoringFile); - } - - var reader = XmlReader.Create(filename); - - var doc = new XmlDocument(); - doc.Load(reader); - var nav = doc.CreateNavigator(); - - SetExemptedParameters(nav, zeroEmission, hybrid, dualFuel); - - var modified = XmlReader.Create(new StringReader(nav.OuterXml)); - - var inputData = xmlInputReader.CreateDeclaration(modified); - - var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); - factory.WriteModalResults = true; - factory.ActualModalData = true; - var jobContainer = new JobContainer(new MockSumWriter()); - - jobContainer.AddRuns(factory); - - AssertHelper.Exception<VectoException>( - () => { - jobContainer.Runs[0].Run.Run(); - }, - messageContains: exMsg); - Assert.IsFalse(File.Exists(customerFile)); - Assert.IsFalse(File.Exists(manufactuerFile)); - Assert.IsFalse(File.Exists(monitoringFile)); - } + var cif = XDocument.Load(XmlReader.Create(customerFile)); + var techNode = cif.XPathSelectElement("//*[local-name()='VehicleTechnologyExempted']"); + Assert.NotNull(techNode); + var match = Regex.Match(techNode.Value, "^[a-zA-Z0-9 ]+$"); + Assert.IsTrue(match.Success); - + var mrf = XDocument.Load(XmlReader.Create(manufactuerFile)); + techNode = mrf.XPathSelectElement("//*[local-name()='VehicleTechnologyExempted']"); + Assert.NotNull(techNode); + match = Regex.Match(techNode.Value, "^[a-zA-Z0-9 ]+$"); + Assert.IsTrue(match.Success); + //var val3 = new XMLValidator(XmlReader.Create(monitoringFile)); + //Assert.IsTrue(val3.ValidateXML(XmlDocumentType.MonitoringReport), val3.ValidationError); - [TestCase(ExemptedVehicle, null, 10000), - TestCase(ExemptedVehicle, 100000, null), - TestCase(ExemptedVehicle, null, null), - Ignore("ExemptedVehicles XML Version 1.0 no longer supported")] - public void TestHybridExemptedRequiresMaxNetPower(string filename, double? maxNetPower1, double? maxNetPower2) - { - var writer = new FileOutputWriter(InputDataHelper.GetRandomFilename(filename)); + } - var customerFile = writer.XMLCustomerReportName; - var manufactuerFile = writer.XMLFullReportName; - var monitoringFile = writer.XMLMonitoringReportName; - if (File.Exists(customerFile)) { - File.Delete(customerFile); - } - if (File.Exists(manufactuerFile)) { - File.Delete(manufactuerFile); - } - if (File.Exists(monitoringFile)) { - File.Delete(monitoringFile); - } - var reader = XmlReader.Create(filename); - - var doc = new XmlDocument(); - doc.Load(reader); - var nav = doc.CreateNavigator(); - var manager = new XmlNamespaceManager(nav.NameTable); - var helper = new XPathHelper(ExecutionMode.Declaration); - helper.AddNamespaces(manager); - - SetExemptedParameters(nav, false, true, false); - var maxPower1 = nav.SelectSingleNode(helper.QueryAbs( - helper.NSPrefix(XMLNames.VectoInputDeclaration, - Constants.XML.RootNSPrefix), - XMLNames.Component_Vehicle, - XMLNames.Vehicle_MaxNetPower1), - manager); - if (maxNetPower1.HasValue) { - maxPower1.SetValue(maxNetPower1.Value.ToXMLFormat(0)); - } else { - maxPower1.DeleteSelf(); - } - var maxPower2 = nav.SelectSingleNode(helper.QueryAbs( - helper.NSPrefix(XMLNames.VectoInputDeclaration, - Constants.XML.RootNSPrefix), - XMLNames.Component_Vehicle, - XMLNames.Vehicle_MaxNetPower2), - manager); - if (maxNetPower2.HasValue) { - maxPower2.SetValue(maxNetPower2.Value.ToXMLFormat(0)); - } else { - maxPower2.DeleteSelf(); - } - - var modified = XmlReader.Create(new StringReader(nav.OuterXml)); - - var inputData = xmlInputReader.CreateDeclaration(modified); - - var factory = SimulatorFactory.CreateSimulatorFactory(ExecutionMode.Declaration, inputData, writer); - factory.WriteModalResults = true; - factory.ActualModalData = true; - var jobContainer = new JobContainer(new MockSumWriter()); - jobContainer.AddRuns(factory); - - AssertHelper.Exception<VectoException>( - () => { - jobContainer.Runs[0].Run.Run(); - }, - messageContains: "For He-HDV both MaxNetPower1 and MaxNetPower2 have to be provided!"); - Assert.IsFalse(File.Exists(customerFile)); - Assert.IsFalse(File.Exists(manufactuerFile)); - Assert.IsFalse(File.Exists(monitoringFile)); - } - - - - private static void SetExemptedParameters(XPathNavigator nav, bool zeroEmission, bool hybrid, bool dualFuel) - { - var manager = new XmlNamespaceManager(nav.NameTable); - var helper = new XPathHelper(ExecutionMode.Declaration); - helper.AddNamespaces(manager); - - var zeNode = nav.SelectSingleNode( - helper.QueryAbs( - helper.NSPrefix( - XMLNames.VectoInputDeclaration, - Constants.XML.RootNSPrefix), - XMLNames.Component_Vehicle, - XMLNames.Vehicle_ZeroEmissionVehicle), - manager); - zeNode.SetValue(zeroEmission.ToString().ToLowerInvariant()); - - var dualfuelNode = nav.SelectSingleNode( - helper.QueryAbs( - helper.NSPrefix( - XMLNames.VectoInputDeclaration, - Constants.XML.RootNSPrefix), - XMLNames.Component_Vehicle, - XMLNames.Vehicle_DualFuelVehicle), - manager); - dualfuelNode.SetValue(dualFuel.ToString().ToLowerInvariant()); - - var hybridNode = nav.SelectSingleNode( - helper.QueryAbs( - helper.NSPrefix( - XMLNames.VectoInputDeclaration, - Constants.XML.RootNSPrefix), - XMLNames.Component_Vehicle, - XMLNames.Vehicle_HybridElectricHDV), - manager); - hybridNode.SetValue(hybrid.ToString().ToLowerInvariant()); - } [TestCase(ExemptedPrimaryBus, 1)] public void TestSimulationExemptedPrimaryBusVehicle(string filename, int numRuns) diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2.xml deleted file mode 100644 index a1430c38cdeb1bccc83a30fd18e352866eda7491..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tns:VectoInputDeclaration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" - xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" - xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" - xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" - xmlns:q1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" - xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" - xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:/QUAM/Workspace/VECTO_quam/VectoCore/VectoCore/Resources/XSD/VectoDeclarationJob.xsd -urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1 E:/QUAM/Workspace/VECTO_quam/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.1.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedVehicleDeclarationType"> - <Manufacturer>Generic Truck Manufacturer</Manufacturer> - <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> - <Model>Generic Model</Model> - <VIN>VEH-1234567890</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <LegislativeClass>N3</LegislativeClass> - <VehicleCategory>Tractor</VehicleCategory> - <CurbMassChassis>7100</CurbMassChassis> - <GrossVehicleMass>40000</GrossVehicleMass> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> - <MaxNetPower1>30000</MaxNetPower1> - <MaxNetPower2>20000</MaxNetPower2> - <HybridElectricHDV>true</HybridElectricHDV> - <DualFuelVehicle>true</DualFuelVehicle> - </v2.0:Vehicle> -</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24.xml new file mode 100644 index 0000000000000000000000000000000000000000..a9cdc29c7176347ff79e540feb844485f25eaac1 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24.xml @@ -0,0 +1,25 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" + xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" + xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" + xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" + xmlns:q1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" + xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" + xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:/VectoCore/VectoCore/Resources/XSD/VectoDeclarationJob.xsd +urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1 v:/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.1.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Exempted_MediumLorryDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>N2</LegislativeCategory> + <ChassisConfiguration>Tractor</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>7100</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <SumNetPower>30000</SumNetPower> + <Technology>Other technology Article 9 exempted</Technology> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_mupltiplePowertrains_invisibleChar.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_mupltiplePowertrains_invisibleChar.xml new file mode 100644 index 0000000000000000000000000000000000000000..2aa43a509dd7fe2990be2ca30334f6c51615b3bd --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_mupltiplePowertrains_invisibleChar.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" + xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" + xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" + xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" + xmlns:q1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" + xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" + xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:/VectoCore/VectoCore/Resources/XSD/VectoDeclarationJob.xsd +urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1 v:/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.1.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Exempted_HeavyLorryDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Tractor</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>7100</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <SleeperCab>false</SleeperCab> + <SumNetPower>20000</SumNetPower> + <Technology>Multiple powerÂÂtrains Article 9 exempted</Technology> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_nonHEV.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_nonHEV.xml new file mode 100644 index 0000000000000000000000000000000000000000..9a97aef7701a41541726cc622acc62816e27a836 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v24_nonHEV.xml @@ -0,0 +1,26 @@ +<?xml version="1.0" encoding="UTF-8"?> +<tns:VectoInputDeclaration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" + xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" + xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" + xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" + xmlns:q1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" + xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" + xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:/VectoCore/VectoCore/Resources/XSD/VectoDeclarationJob.xsd +urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1 v:/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.1.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Exempted_HeavyLorryDeclarationType"> + <Manufacturer>Generic Truck Manufacturer</Manufacturer> + <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> + <Model>Generic Model</Model> + <VIN>VEH-1234567890</VIN> + <Date>2017-02-15T11:00:00Z</Date> + <LegislativeCategory>N3</LegislativeCategory> + <ChassisConfiguration>Tractor</ChassisConfiguration> + <AxleConfiguration>4x2</AxleConfiguration> + <CorrectedActualMass>7100</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>40000</TechnicalPermissibleMaximumLadenMass> + <ZeroEmissionVehicle>false</ZeroEmissionVehicle> + <SleeperCab>false</SleeperCab> + <SumNetPower>20000</SumNetPower> + <Technology>HV Article 9 exempted</Technology> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2_nonHEV.xml b/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2_nonHEV.xml deleted file mode 100644 index 6226e1a3ae5216613c900bf08f163a62bb0bf68a..0000000000000000000000000000000000000000 --- a/VectoCore/VectoCoreTest/TestData/Integration/DeclarationMode/ExemptedVehicle/vecto_vehicle-sample_exempted_v2_nonHEV.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<tns:VectoInputDeclaration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" schemaVersion="2.0" - xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" - xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" - xmlns:v2.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" - xmlns:q1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1" - xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" - xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob E:/QUAM/Workspace/VECTO_quam/VectoCore/VectoCore/Resources/XSD/VectoDeclarationJob.xsd -urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1 E:/QUAM/Workspace/VECTO_quam/VectoCore/VectoCore/Resources/XSD/VectoDeclarationDefinitions.2.1.xsd"> - <v2.0:Vehicle id="VEH-1234567890" xsi:type="ExemptedVehicleDeclarationType"> - <Manufacturer>Generic Truck Manufacturer</Manufacturer> - <ManufacturerAddress>Street, ZIP City</ManufacturerAddress> - <Model>Generic Model</Model> - <VIN>VEH-1234567890</VIN> - <Date>2017-02-15T11:00:00Z</Date> - <LegislativeClass>N3</LegislativeClass> - <VehicleCategory>Tractor</VehicleCategory> - <CurbMassChassis>7100</CurbMassChassis> - <GrossVehicleMass>40000</GrossVehicleMass> - <ZeroEmissionVehicle>false</ZeroEmissionVehicle> - <MaxNetPower1>30000</MaxNetPower1> - <MaxNetPower2>20000</MaxNetPower2> - <HybridElectricHDV>false</HybridElectricHDV> - <DualFuelVehicle>true</DualFuelVehicle> - </v2.0:Vehicle> -</tns:VectoInputDeclaration> \ No newline at end of file