diff --git a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs index 851676df897a0b1b4ca342c867f3caddd83a7a64..a6075a0bc458dcb1c936de1c411d0738f32c7f33 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLCustomerReport.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -101,7 +102,7 @@ namespace TUGraz.VectoCore.OutputData.XML exempted ? ExemptedData(modelData) : new[] { new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), - new XElement(tns + XMLNames.Report_CO2StandardsGroup, DeclarationReport.WeightingGroup.ToXMLFormat()), + new XElement(tns + XMLNames.Report_CO2StandardsGroup, modelData.VehicleData.VocationalVehicle ? Constants.NOT_AVAILABLE : DeclarationReport.WeightingGroup.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle), new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.SleeperCab), GetADAS(modelData.VehicleData.InputData.ADAS) diff --git a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs index 8998b8d2cd82dedf56575cfcd38aa70ef564c524..c9322cdbe0fa3e155fbdf4abb0ac2f5f7ad6a4b3 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLManufacturerReport.cs @@ -41,6 +41,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Resources; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.Simulation.Impl; @@ -97,7 +98,7 @@ namespace TUGraz.VectoCore.OutputData.XML : new[] { new XElement(tns + XMLNames.Vehicle_AxleConfiguration, modelData.VehicleData.AxleConfiguration.GetName()), new XElement(tns + XMLNames.Report_Vehicle_VehicleGroup, modelData.VehicleData.VehicleClass.GetClassNumber()), - new XElement(tns + XMLNames.Report_CO2StandardsGroup, DeclarationReport.WeightingGroup.ToXMLFormat()), + new XElement(tns + XMLNames.Report_CO2StandardsGroup, modelData.VehicleData.VocationalVehicle ? Constants.NOT_AVAILABLE : DeclarationReport.WeightingGroup.ToXMLFormat()), new XElement(tns + XMLNames.Vehicle_VocationalVehicle, modelData.VehicleData.VocationalVehicle), new XElement(tns + XMLNames.Vehicle_SleeperCab, modelData.VehicleData.SleeperCab), new XElement(tns + XMLNames.Vehicle_PTO, modelData.PTO != null), diff --git a/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs index a55d217d383acbd217e138c0443f20bb2745fd60..2c883258cd60d53feb6f5693acb975a3d1d62d84 100644 --- a/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Declaration/VocationalVehicleTest.cs @@ -32,16 +32,23 @@ using System; using System.IO; using System.Linq; +using System.Xml; +using System.Xml.XPath; using Ninject; using NUnit.Framework; using NUnit.Framework.Internal; using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData.FileIO.JSON; using TUGraz.VectoCore.InputData.FileIO.XML; using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Tests.Integration.Declaration; using TUGraz.VectoCore.Tests.Models.Simulation; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Tests.Integration { @@ -91,5 +98,44 @@ namespace TUGraz.VectoCore.Tests.Integration var progress = jobContainer.GetProgress(); Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); } + + [Category("LongRunning")] + [TestCase(Class4Vocational, 4), + TestCase(Class5Vocational, 2)] + public void VocationalTestCO2StandardsGroup(string filename, int numRuns) + { + var writer = new MockDeclarationWriter(filename); + var inputData = xmlInputReader.CreateDeclaration(filename); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer) { + WriteModalResults = true, + ActualModalData = true, + ValidateComponentHashes = false + }; + var jobContainer = new JobContainer(new MockSumWriter()); + + var runs = factory.SimulationRuns().ToList(); + Assert.AreEqual(numRuns, runs.Count); + foreach (var run in runs) { + jobContainer.AddRun(run); + } + + //jobContainer.AddRuns(factory); + + jobContainer.Execute(); + jobContainer.WaitFinished(); + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + + foreach (var reportType in new[]{ReportType.DeclarationReportCustomerXML, ReportType.DeclarationReportManufacturerXML}) { + var rpt = writer.GetReport(reportType); + var vocationalNode = rpt.XPathSelectElement(XMLHelper.QueryLocalName(XMLNames.Vehicle_VocationalVehicle)); + Assert.NotNull(vocationalNode); + Assert.IsTrue(XmlConvert.ToBoolean(vocationalNode.Value)); + + var co2StandardsNode = rpt.XPathSelectElement(XMLHelper.QueryLocalName(XMLNames.Report_CO2StandardsGroup)); + Assert.NotNull(co2StandardsNode); + Assert.AreEqual(Constants.NOT_AVAILABLE, co2StandardsNode.Value); + } + } } }