From b4d840dab0f42706993efb69b2c759a01098e49c Mon Sep 17 00:00:00 2001 From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at> Date: Tue, 1 Jun 2021 15:25:11 +0200 Subject: [PATCH] adjusted multistage consolidate class and added additional tests --- .../XMLDeclarationMultistageInputReader.cs | 17 +- .../Multistage/MultistageVehicleTest.cs | 219 ++++++++++++++++++ .../vecto_vehicle-stage_input_full-sample.xml | 2 + ...e_consolidated_multiple_stages_airdrag.xml | 18 ++ ...o_multistage_primary_vehicle_stage_2_3.xml | 6 +- ...LMultistageBusConsolidatedInputDataTest.cs | 43 +++- .../XML/XMLMultistageBusDataTest.cs | 2 +- .../XML/XMLMultistageBusInputDataTest.cs | 4 +- 8 files changed, 301 insertions(+), 10 deletions(-) diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs index dd63bc3322..aca0d0a9e7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs @@ -681,7 +681,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl var checkAirdragModified = false; var validAirdragEntries = true; - var stages = _manufacturingStages.Reverse(); + var t = _manufacturingStages.ToList(); + + var stages = _manufacturingStages.Reverse().ToList(); foreach (var manufacturingStage in stages) { if (manufacturingStage.Vehicle?.Components?.AirdragInputData != null && !checkAirdragModified ) { checkAirdragModified = true; @@ -1299,10 +1301,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl private IList<Tuple<HeatPumpType, HeatPumpMode>> GetHeatPumpPassengerCompartments() { if (_manufacturingStages?.Any() != true) - return null; + return null; - return _manufacturingStages?.First()?.Vehicle?.Components?.BusAuxiliaries?.HVACAux - ?.HeatPumpPassengerCompartments; + foreach (var entry in _manufacturingStages) { + if (entry.Vehicle?.Components?.BusAuxiliaries?.HVACAux?.HeatPumpPassengerCompartments != null) + return entry.Vehicle.Components.BusAuxiliaries.HVACAux.HeatPumpPassengerCompartments; + } + + return null; } @@ -1342,6 +1348,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public override bool IsInputDataComplete(VectoSimulationJobType jobType) { return MethodComplete(IsCorrectSystemConfiguration(), nameof(IsCorrectSystemConfiguration)) + && InputComplete(HeatPumpTypeDriverCompartment, nameof(HeatPumpTypeDriverCompartment)) + && InputComplete(HeatPumpModeDriverCompartment, nameof(HeatPumpModeDriverCompartment)) + && InputComplete(HeatPumpPassengerCompartments, nameof(HeatPumpPassengerCompartments)) && InputComplete(AuxHeaterPower, nameof(AuxHeaterPower)) && InputComplete(DoubleGlazing, nameof(DoubleGlazing)) && InputComplete(AdjustableAuxiliaryHeater, nameof(AdjustableAuxiliaryHeater)) diff --git a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs index 4f8544b7a4..ec837b65c6 100644 --- a/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs +++ b/VectoCore/VectoCoreTest/Integration/Multistage/MultistageVehicleTest.cs @@ -103,9 +103,221 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage var validator = new XMLValidator(xmlReader); Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError); } + } + + #region VIF result file test + + [TestCase(VIFInputFile, InputFilePath, 1)] + public void TestVifGeneration(string vifFilename, string inputFilename, int numRuns) + { + //Input files + var inputReader = XmlReader.Create(inputFilename); + var inputDataProvider = xmlInputReader.CreateDeclaration(inputReader); + var vehicle = inputDataProvider.JobInputData.Vehicle; + + var vifReader = XmlReader.Create(vifFilename); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + var numberOfManufacturingStages = vifDataProvider?.JobInputData.ManufacturingStages?.Count ?? 0; + var writer = new FileOutputVIFWriter(vifResult, numberOfManufacturingStages); + + var inputData = new XMLDeclarationVIFInputData(vifDataProvider, vehicle); + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputData, writer); + 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.Execute(); + jobContainer.WaitFinished(); + var progress = jobContainer.GetProgress(); + Assert.IsTrue(progress.All(r => r.Value.Success), string.Concat<Exception>(progress.Select(r => r.Value.Error))); + + using (var xmlReader = XmlReader.Create(writer.XMLMultistageReportFileName)) + { + var validator = new XMLValidator(xmlReader); + Assert.IsTrue(validator.ValidateXML(VectoCore.Utils.XmlDocumentType.MultistageOutputData), validator.ValidationError); + } + + TestNewVifData(writer.XMLMultistageReportFileName); } + + + + private void TestNewVifData(string filePath) + { + var vifReader = XmlReader.Create(filePath); + var vifDataProvider = xmlInputReader.Create(vifReader) as IMultistageBusInputDataProvider; + + Assert.AreEqual(3, vifDataProvider.JobInputData.ManufacturingStages.Count()); + TestVifStage2Data(vifDataProvider.JobInputData.ManufacturingStages[0]); + TestVifStage3Data(vifDataProvider.JobInputData.ManufacturingStages[1]); + TestVifStage4Data(vifDataProvider.JobInputData.ManufacturingStages[2]); + } + + private void TestVifStage2Data(IManufacturingStageInputData data) + { + Assert.AreEqual(2, data.StageCount); + TestSignatureData(data.HashPreviousStage, "nI+57QQtWA2rFqJTZ41t0XrXcJbcGmc7j4E66iGJyT0=", + "#PIF-d10aff76c5d149948046"); + + Assert.AreEqual("Intermediate Manufacturer 1", data.Vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 1", data.Vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", data.Vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), data.Vehicle.Date); + Assert.AreEqual(VehicleDeclarationType.interim, data.Vehicle.VehicleDeclarationType); + Assert.AreEqual(null, data.Vehicle.ADAS); + Assert.AreEqual(null, data.Vehicle.Components); + + TestApplicationInformation(data.ApplicationInformation, "!!NOT FOR CERTIFICATION!!", + "2021-01-12T07:20:08.0187663Z"); + + TestSignatureData(data.Signature, "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-6f30c7fe665a47938f6b"); + } + + private void TestVifStage3Data(IManufacturingStageInputData data) + { + Assert.AreEqual(3, data.StageCount); + TestSignatureData(data.HashPreviousStage, "BMpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-6f30c7fe665a47938f6b"); + + Assert.AreEqual("Intermediate Manufacturer 2", data.Vehicle.Manufacturer); + Assert.AreEqual("Intermediate Manufacturer Address 2", data.Vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-2234567890", data.Vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), data.Vehicle.Date); + Assert.AreEqual(VehicleDeclarationType.final, data.Vehicle.VehicleDeclarationType); + + Assert.AreEqual(true, data.Vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.WithEngineStop, data.Vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, data.Vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(null, data.Vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + var aux = data.Vehicle.Components.BusAuxiliaries; + Assert.AreEqual(true, aux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(false, aux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(false, aux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.HeadlightsLED); + + var hvac = data.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, hvac.SystemConfiguration); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvac.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(50.SI<Watt>(), hvac.AuxHeaterPower); + Assert.AreEqual(false, hvac.DoubleGlazing); + Assert.AreEqual(true, hvac.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvac.SeparateAirDistributionDucts); + Assert.AreEqual(false, hvac.WaterElectricHeater); + Assert.AreEqual(false, hvac.AirElectricHeater); + Assert.AreEqual(true, hvac.OtherHeatingTechnology); + + TestApplicationInformation(data.ApplicationInformation, "!!NOT FOR CERTIFICATION!!!", + "2021-03-13T07:20:08.0187663Z"); + + TestSignatureData(data.Signature, "GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-8f30c7fe665a47938f6b"); + } + + private void TestVifStage4Data(IManufacturingStageInputData data) + { + Assert.AreEqual(4, data.StageCount); + TestSignatureData(data.HashPreviousStage, "GHpFCKh1bu/YPwYj37kJK1uCrv++BTLf2OUZcOt43Os=", + "#RESULT-8f30c7fe665a47938f6b"); + + Assert.AreEqual("Some Manufacturer", data.Vehicle.Manufacturer); + Assert.AreEqual("Some Manufacturer Address", data.Vehicle.ManufacturerAddress); + Assert.AreEqual("VEH-1234567890", data.Vehicle.VIN); + Assert.AreEqual(DateTime.Parse("2020-01-09T11:00:00Z").ToUniversalTime(), data.Vehicle.Date); + Assert.AreEqual("Sample Bus Model", data.Vehicle.Model); + Assert.AreEqual(LegislativeClass.M3, data.Vehicle.LegislativeClass); + Assert.AreEqual(500, data.Vehicle.CurbMassChassis.Value()); + Assert.AreEqual(3500, data.Vehicle.GrossVehicleMassRating.Value()); + Assert.AreEqual(null, data.Vehicle.AirdragModifiedMultistage); + Assert.AreEqual(TankSystem.Compressed, data.Vehicle.TankSystem); + Assert.AreEqual(RegistrationClass.II_III, data.Vehicle.RegisteredClass); + Assert.AreEqual(1, data.Vehicle.NumberPassengerSeatsLowerDeck); + Assert.AreEqual(10, data.Vehicle.NumberPassengersStandingLowerDeck); + Assert.AreEqual(11, data.Vehicle.NumberPassengerSeatsUpperDeck); + Assert.AreEqual(2, data.Vehicle.NumberPassengersStandingUpperDeck); + Assert.AreEqual(VehicleCode.CB, data.Vehicle.VehicleCode); + Assert.AreEqual(false, data.Vehicle.LowEntry); + Assert.AreEqual(2.5.SI<Meter>(), data.Vehicle.Height);//HeightIntegratedBody + Assert.AreEqual(9.5.SI<Meter>(), data.Vehicle.Length); + Assert.AreEqual(2.5.SI<Meter>(), data.Vehicle.Width); + Assert.AreEqual(2.SI<Meter>(), data.Vehicle.EntranceHeight); + Assert.AreEqual(VehicleDeclarationType.interim, data.Vehicle.VehicleDeclarationType); + + Assert.AreEqual(true, data.Vehicle.ADAS.EngineStopStart); + Assert.AreEqual(EcoRollType.None, data.Vehicle.ADAS.EcoRoll); + Assert.AreEqual(PredictiveCruiseControlType.None, data.Vehicle.ADAS.PredictiveCruiseControl); + Assert.AreEqual(true, data.Vehicle.ADAS.ATEcoRollReleaseLockupClutch); + + var airdrag = data.Vehicle.Components.AirdragInputData as AbstractCommonComponentType; + Assert.NotNull(airdrag); + Assert.AreEqual("Generic Manufacturer", airdrag.Manufacturer); + Assert.AreEqual("Generic Model", airdrag.Model); + Assert.AreEqual("e12*0815/8051*2017/05E0000*00", airdrag.CertificationNumber); + Assert.AreEqual(DateTime.Parse("2017-03-24T15:00:00Z").ToUniversalTime(), airdrag.Date); + Assert.AreEqual("Vecto AirDrag x.y", airdrag.AppVersion); + Assert.AreEqual(6.34.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.AirDragArea); + Assert.AreEqual(6.31.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.AirDragArea_0); + Assert.AreEqual(6.32.SI<SquareMeter>(), data.Vehicle.Components.AirdragInputData.TransferredAirDragArea); + TestSignatureData(airdrag.DigestValue, "b9SHCfOoVrBxFQ8wwDK32OO+9bd85DuaUdgs6j/29N8=", "#CabinX23h"); + + var aux = data.Vehicle.Components.BusAuxiliaries; + Assert.AreEqual(false, aux.ElectricConsumers.InteriorLightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.DayrunninglightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.PositionlightsLED); + Assert.AreEqual(true, aux.ElectricConsumers.BrakelightsLED); + Assert.AreEqual(false, aux.ElectricConsumers.HeadlightsLED); + + var hvac = data.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvac.SystemConfiguration); + Assert.AreEqual(HeatPumpType.none, hvac.HeatPumpTypeDriverCompartment); + Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpModeDriverCompartment); + Assert.AreEqual(3, hvac.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvac.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvac.HeatPumpPassengerCompartments[1].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvac.HeatPumpPassengerCompartments[2].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvac.HeatPumpPassengerCompartments[2].Item2); + Assert.AreEqual(50.SI<Watt>(), hvac.AuxHeaterPower); + Assert.AreEqual(false, hvac.DoubleGlazing); + Assert.AreEqual(true, hvac.AdjustableAuxiliaryHeater); + Assert.AreEqual(false, hvac.SeparateAirDistributionDucts); + Assert.AreEqual(true, hvac.WaterElectricHeater); + Assert.AreEqual(false, hvac.AirElectricHeater); + Assert.AreEqual(false, hvac.OtherHeatingTechnology); + } + + private void TestSignatureData(DigestData digestData, string digestValue, string reference) + { + Assert.AreEqual(reference, digestData.Reference); + Assert.AreEqual("urn:vecto:xml:2017:canonicalization", digestData.CanonicalizationMethods[0]); + Assert.AreEqual("http://www.w3.org/2001/10/xml-exc-c14n#", digestData.CanonicalizationMethods[1]); + Assert.AreEqual("http://www.w3.org/2001/04/xmlenc#sha256", digestData.DigestMethod); + Assert.AreEqual(digestValue, digestData.DigestValue); + } + + private void TestApplicationInformation(IApplicationInformation appInfo, string version, string date) + { + Assert.AreEqual(version, appInfo.SimulationToolVersion); + Assert.AreEqual(DateTime.Parse(date).ToUniversalTime(), appInfo.Date); + } + + #endregion + + + [TestCase()] public void TestMultistageSimulationRun() { @@ -562,5 +774,12 @@ namespace TUGraz.VectoCore.Tests.Integration.Multistage #endregion + + + + + + + } } diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml index aa01f826f3..c417f3e182 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.8/vecto_vehicle-stage_input_full-sample.xml @@ -79,6 +79,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob v:\VectoCore\VectoCor <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> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml index bb432ee094..0ad9eb1fd6 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_consolidated_multiple_stages_airdrag.xml @@ -691,6 +691,22 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </di:Reference> </v2.0:Signature> </v2.8:AirDrag> + <v2.8:Auxiliaries> + <v2.8:Data xsi:type="v2.8:CompletedVehicleAuxiliaryDataDeclarationType"> + <v2.8:HVAC> + <v2.8:SystemConfiguration>1</v2.8:SystemConfiguration> + <v2.8:HeatPumpTypeDriverCompartment>non R-744 2-stage</v2.8:HeatPumpTypeDriverCompartment> + <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment> + <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> + <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> + <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> + <v2.8:SeparateAirDistributionDucts>false</v2.8:SeparateAirDistributionDucts> + </v2.8:HVAC> + </v2.8:Data> + </v2.8:Auxiliaries> + </v2.8:Components> </Vehicle> <ApplicationInformation> @@ -752,6 +768,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile <v2.8:HeatPumpModeDriverCompartment>heating</v2.8:HeatPumpModeDriverCompartment> <v2.8:HeatPumpTypePassengerCompartment>non R-744 3-stage</v2.8:HeatPumpTypePassengerCompartment> <v2.8:HeatPumpModePassengerCompartment>cooling</v2.8:HeatPumpModePassengerCompartment> + <v2.8:HeatPumpTypePassengerCompartment>non R-744 2-stage</v2.8:HeatPumpTypePassengerCompartment> + <v2.8:HeatPumpModePassengerCompartment>heating</v2.8:HeatPumpModePassengerCompartment> <v2.8:AuxiliaryHeaterPower>50</v2.8:AuxiliaryHeaterPower> <v2.8:DoubleGlazing>false</v2.8:DoubleGlazing> <v2.8:AdjustableAuxiliaryHeater>true</v2.8:AdjustableAuxiliaryHeater> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml index 690f75c117..b164a8f8f0 100644 --- a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersionMultistage.0.1/vecto_multistage_primary_vehicle_stage_2_3.xml @@ -688,7 +688,7 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </HashPreviousStage> <Vehicle xsi:type="v2.8:InterimStageInputType" id="MSTG-2-Vehicle"> <v2.8:Manufacturer>Intermediate Manufacturer 2</v2.8:Manufacturer> - <v2.8:ManufacturerAddress></v2.8:ManufacturerAddress> + <v2.8:ManufacturerAddress>Intermediate Manufacturer Address 2</v2.8:ManufacturerAddress> <v2.8:VIN>VEH-2234567890</v2.8:VIN> <v2.8:Date>2021-02-13T07:20:08.0187663Z</v2.8:Date> <v2.8:VehicleDeclarationType>final</v2.8:VehicleDeclarationType> @@ -729,8 +729,8 @@ xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationOutput:VehicleInterimFile </v2.8:Components> </Vehicle> <ApplicationInformation> - <SimulationToolVersion>!!NOT FOR CERTIFICATION!!</SimulationToolVersion> - <Date>2021-02-13T07:20:08.0187663Z</Date> + <SimulationToolVersion>!!NOT FOR CERTIFICATION!!!</SimulationToolVersion> + <Date>2021-03-13T07:20:08.0187663Z</Date> </ApplicationInformation> </Data> <Signature> diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs index d03f757ed1..50fba39851 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs @@ -110,7 +110,8 @@ namespace TUGraz.VectoCore.Tests.XML { var reader = XmlReader.Create(_primaryOnlyInputData); var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; - + + Assert.AreEqual(null, inputDataProvider.JobInputData.ManufacturingStages); Assert.AreEqual(null, inputDataProvider.JobInputData.ConsolidateManufacturingStage); Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete); } @@ -151,6 +152,7 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(null, vehicle.ADAS); Assert.AreEqual(null, vehicle.Components); + } [TestCase] @@ -199,6 +201,17 @@ namespace TUGraz.VectoCore.Tests.XML { var reader = XmlReader.Create(_consolidatedInputDataAirdrag); var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(2, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpPassengerCompartments[1].Item1); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpPassengerCompartments[1].Item2); + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); } @@ -207,6 +220,15 @@ namespace TUGraz.VectoCore.Tests.XML { var reader = XmlReader.Create(_consolidatedInputDataHeatPump); var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.N_A, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.none, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); } @@ -215,6 +237,15 @@ namespace TUGraz.VectoCore.Tests.XML { var reader = XmlReader.Create(_consolidatedInputDataHeatHev); var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); } @@ -223,6 +254,16 @@ namespace TUGraz.VectoCore.Tests.XML { var reader = XmlReader.Create(_consolidatedInputDataHeatNgTank); var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider; + + var hvaux = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle.Components.BusAuxiliaries.HVACAux; + Assert.NotNull(hvaux); + Assert.AreEqual(HeatPumpMode.heating, hvaux.HeatPumpModeDriverCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvaux.HeatPumpTypeDriverCompartment); + Assert.AreEqual(1, hvaux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvaux.HeatPumpPassengerCompartments[0].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvaux.HeatPumpPassengerCompartments[0].Item2); + + Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete); } } diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs index 9924e014fe..6a337e3dac 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs @@ -611,7 +611,7 @@ namespace TUGraz.VectoCore.Tests.XML { Assert.AreEqual("MSTG-2-Vehicle", vehicleData.Identifier); Assert.AreEqual("Intermediate Manufacturer 2", vehicleData.Manufacturer); - Assert.AreEqual("", vehicleData.ManufacturerAddress); + Assert.AreEqual("Intermediate Manufacturer Address 2", vehicleData.ManufacturerAddress); Assert.AreEqual("VEH-2234567890", vehicleData.VIN); Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicleData.Date); Assert.AreEqual(null, vehicleData.AirdragModifiedMultistage); diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs index 3837313f74..fa4c8b678a 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs @@ -112,11 +112,13 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration); Assert.AreEqual(HeatPumpType.none, hvacAux.HeatPumpTypeDriverCompartment); Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); - Assert.AreEqual(2, hvacAux.HeatPumpPassengerCompartments.Count); + Assert.AreEqual(3, hvacAux.HeatPumpPassengerCompartments.Count); Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[0].Item1); Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[0].Item2); Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpPassengerCompartments[1].Item1); Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpPassengerCompartments[1].Item2); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpPassengerCompartments[2].Item1); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpPassengerCompartments[2].Item2); Assert.AreEqual(50, hvacAux.AuxHeaterPower.Value()); Assert.AreEqual(false, hvacAux.DoubleGlazing); Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); -- GitLab