From b374317645d468e2019d79f3ddf30a186681c5a4 Mon Sep 17 00:00:00 2001 From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at> Date: Thu, 27 May 2021 18:54:04 +0200 Subject: [PATCH] Added possibility to designate multiple passenger heat pumps --- .../BusAuxiliaries/ISSMDeclarationInputs.cs | 10 +++ .../InputData/DeclarationInputData.cs | 5 +- .../InputData/FileIO/JSON/JSONSubComponent.cs | 4 +- ...MLDeclarationBusAuxiliariesDataProvider.cs | 62 ++++++++++++++----- .../XMLDeclarationMultistageInputReader.cs | 34 ++-------- ...larationDataAdapterCompletedBusSpecific.cs | 46 ++++++++------ .../OutputData/XML/XMLMultistageBusReport.cs | 26 ++++++-- ...LMultistageBusConsolidatedInputDataTest.cs | 4 +- .../XML/XMLMultistageBusDataTest.cs | 12 ++-- .../XML/XMLMultistageBusInputDataTest.cs | 8 ++- 10 files changed, 128 insertions(+), 83 deletions(-) diff --git a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs index c204b3e653..4ceecddbed 100644 --- a/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs +++ b/VectoCommon/VectoCommon/BusAuxiliaries/ISSMDeclarationInputs.cs @@ -256,6 +256,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries } } + public static string GetLabel(this HeatPumpType type) + { + return GetLabel(type as HeatPumpType?); + } + public static string GetName(this HeatPumpType type) { return type.ToString(); @@ -338,6 +343,11 @@ namespace TUGraz.VectoCommon.BusAuxiliaries default: return null; } } + + public static string GetLabel(this HeatPumpMode type) + { + return GetLabel(type as HeatPumpMode?); + } } public interface ISSMEngineeringInputs : ISSMInputs diff --git a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs index 8e11b241c0..b54fd50bbd 100644 --- a/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs +++ b/VectoCommon/VectoCommon/InputData/DeclarationInputData.cs @@ -896,9 +896,8 @@ namespace TUGraz.VectoCommon.InputData HeatPumpMode? HeatPumpModeDriverCompartment { get; } - HeatPumpType? HeatPumpTypePassengerCompartment { get; } - - HeatPumpMode? HeatPumpModePassengerCompartment { get; } + IList<HeatPumpType> HeatPumpTypePassengerCompartments { get; } + IList<HeatPumpMode> HeatPumpModePassengerCompartments { get; } Watt AuxHeaterPower { get; } diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs index ad25de035d..581d2c72da 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONSubComponent.cs @@ -714,8 +714,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON public virtual BusHVACSystemConfiguration? SystemConfiguration { get; set; } public virtual HeatPumpType? HeatPumpTypeDriverCompartment { get { return null; } } public virtual HeatPumpMode? HeatPumpModeDriverCompartment { get { return null; } } - public virtual HeatPumpType? HeatPumpTypePassengerCompartment { get{ return null; } } - public virtual HeatPumpMode? HeatPumpModePassengerCompartment { get { return null; } } + public virtual IList<HeatPumpType> HeatPumpTypePassengerCompartments { get { return null; } } + public virtual IList<HeatPumpMode> HeatPumpModePassengerCompartments { get { return null; } } public virtual Watt AuxHeaterPower { get { return null; } } public virtual bool? DoubleGlazing { get { return false; } } public virtual bool HeatPump { get { return false; } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs index 6a22c683b4..988d466099 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/XMLDeclarationBusAuxiliariesDataProvider.cs @@ -1,7 +1,5 @@ -using System; -using System.Collections.Generic; +using System.Collections.Generic; using System.Linq; -using System.Windows.Forms; using System.Xml; using System.Xml.Linq; using TUGraz.VectoCommon.BusAuxiliaries; @@ -219,8 +217,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider public virtual HeatPumpType? HeatPumpTypeDriverCompartment { get { return null; } } public virtual HeatPumpMode? HeatPumpModeDriverCompartment { get { return null; } } - public virtual HeatPumpType? HeatPumpTypePassengerCompartment { get { return null; } } - public virtual HeatPumpMode? HeatPumpModePassengerCompartment { get { return null; } } + public virtual IList<HeatPumpType> HeatPumpTypePassengerCompartments { get { return null; } } + public virtual IList<HeatPumpMode> HeatPumpModePassengerCompartments { get { return null; } } public virtual Watt AuxHeaterPower { @@ -394,8 +392,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider private bool IsBusHVACTagEmpty() { return SystemConfiguration == null && HeatPumpTypeDriverCompartment == null && HeatPumpModeDriverCompartment == null && - HeatPumpTypePassengerCompartment == null && HeatPumpModePassengerCompartment == null && AuxHeaterPower == null && - DoubleGlazing == null && AdjustableAuxiliaryHeater == null && SeparateAirDistributionDucts == null && + HeatPumpTypePassengerCompartments?.Any() != true && HeatPumpModePassengerCompartments?.Any() != true && + AuxHeaterPower == null && DoubleGlazing == null && AdjustableAuxiliaryHeater == null && SeparateAirDistributionDucts == null && WaterElectricHeater == null && AirElectricHeater == null && OtherHeatingTechnology == null ; } @@ -436,28 +434,58 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider ? HeatPumpModeHelper.Parse(GetString(XMLNames.Bus_HeatPumpModeDriver)) : null; } } - - public override HeatPumpType? HeatPumpTypePassengerCompartment + + public override IList<HeatPumpType> HeatPumpTypePassengerCompartments { - get + get { - return ElementExists(XMLNames.Bus_HeatPumpTypePassenger) - ? HeatPumpTypeHelper.Parse(GetString(XMLNames.Bus_HeatPumpTypePassenger)) : (HeatPumpType?)null; + return ElementExists(XMLNames.Bus_HeatPumpTypePassenger) + ? GetHeatPumpTypePassengerCompartments() : null; } } + + private IList<HeatPumpType> GetHeatPumpTypePassengerCompartments() + { + var pumpTypeNodes = GetNodes(XMLNames.Bus_HeatPumpTypePassenger); + if (pumpTypeNodes == null) + return null; + + var pumpTypes = new List<HeatPumpType>(); - public override HeatPumpMode? HeatPumpModePassengerCompartment + foreach (XmlNode pumpTypeNode in pumpTypeNodes) { + var entry = HeatPumpTypeHelper.Parse(pumpTypeNode?.InnerText); + pumpTypes.Add(entry); + } + + return pumpTypes.Any() != true ? null : pumpTypes; + } + + public override IList<HeatPumpMode> HeatPumpModePassengerCompartments { get { - if (HeatPumpTypePassengerCompartment == HeatPumpType.none && !ElementExists(XMLNames.Bus_HeatPumpModePassenger)) - return HeatPumpMode.N_A; - return ElementExists(XMLNames.Bus_HeatPumpModePassenger) - ? HeatPumpModeHelper.Parse(GetString(XMLNames.Bus_HeatPumpModePassenger)) : null; + ? GetHeatPumpModePassengerCompartments() : null; } } + private IList<HeatPumpMode> GetHeatPumpModePassengerCompartments() + { + var pumpModeNodes = GetNodes(XMLNames.Bus_HeatPumpModePassenger); + if (pumpModeNodes == null) + return null; + + var pumpModes = new List<HeatPumpMode>(); + foreach (XmlNode pumpMode in pumpModeNodes) + { + var entry = HeatPumpModeHelper.Parse(pumpMode?.InnerText); + if (entry != null) + pumpModes.Add((HeatPumpMode)entry); + } + + return pumpModes.Any() != true ? null : pumpModes; + } + public override Watt AuxHeaterPower { get 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 ca94ebd371..b4c92f45c0 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLDeclarationMultistageInputReader.cs @@ -1215,19 +1215,20 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl } } - public HeatPumpType? HeatPumpTypePassengerCompartment + public IList<HeatPumpType> HeatPumpTypePassengerCompartments { get { - return GetHVACBusAuxPropertyValue<HeatPumpType?>(nameof(HeatPumpTypePassengerCompartment)); + return GetHVACBusAuxPropertyValue<IList<HeatPumpType>>(nameof(HeatPumpTypePassengerCompartments)); + } } - public HeatPumpMode? HeatPumpModePassengerCompartment + public IList<HeatPumpMode> HeatPumpModePassengerCompartments { get { - return GetHVACBusAuxPropertyValue<HeatPumpMode?>(nameof(HeatPumpModePassengerCompartment)); + return GetHVACBusAuxPropertyValue<IList<HeatPumpMode>>(nameof(HeatPumpModePassengerCompartments)); } } @@ -1310,28 +1311,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl { return SystemConfiguration != null && SystemConfiguration != BusHVACSystemConfiguration.Unknown; } - - private bool IsCorrectDriverPumpTypeDriverPumpMode() - { - if (HeatPumpModeDriverCompartment == null) - return false; - - if (HeatPumpTypeDriverCompartment == HeatPumpType.none) - return HeatPumpModeDriverCompartment == null || HeatPumpModeDriverCompartment == HeatPumpMode.N_A; - - return HeatPumpTypeDriverCompartment != null && HeatPumpModeDriverCompartment != null; - } - - private bool IsCorrectPassengerPumpTypeDriverPumpMode() - { - if (HeatPumpTypePassengerCompartment == null) - return false; - if (HeatPumpTypePassengerCompartment == HeatPumpType.none) - return HeatPumpModePassengerCompartment == null || HeatPumpModePassengerCompartment == HeatPumpMode.N_A; - - return HeatPumpTypePassengerCompartment != null && HeatPumpModePassengerCompartment != null; - } - + private bool RequiredParametersForJobType(VectoSimulationJobType jobType) { switch (jobType) { @@ -1349,8 +1329,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public override bool IsInputDataComplete(VectoSimulationJobType jobType) { return InputComplete(IsCorrectSystemConfiguration(), nameof(IsCorrectSystemConfiguration)) - && InputComplete(IsCorrectDriverPumpTypeDriverPumpMode(), nameof(IsCorrectDriverPumpTypeDriverPumpMode)) - && InputComplete(IsCorrectPassengerPumpTypeDriverPumpMode(), nameof(IsCorrectPassengerPumpTypeDriverPumpMode)) && InputComplete(AuxHeaterPower, nameof(AuxHeaterPower)) && InputComplete(DoubleGlazing, nameof(DoubleGlazing)) && InputComplete(AdjustableAuxiliaryHeater, nameof(AdjustableAuxiliaryHeater)) diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs index 35ec26a9c3..8773b7b6d6 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterCompletedBusSpecific.cs @@ -190,10 +190,10 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter if (hvacConfiguration.RequiresDriverAC() && (!busAux.HeatPumpTypeDriverCompartment.HasValue || busAux.HeatPumpTypeDriverCompartment == HeatPumpType.none)) { throw new VectoException("HVAC System Configuration {0} requires DriverAC Technology", hvacConfiguration); } - - if (hvacConfiguration.RequiresPassengerAC() && (!busAux.HeatPumpTypePassengerCompartment.HasValue || busAux.HeatPumpTypePassengerCompartment == HeatPumpType.none)) { - throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration); - } + //ToDo FK HeatPumpMode error check + //if (hvacConfiguration.RequiresPassengerAC() && (!busAux.HeatPumpTypePassengerCompartment.HasValue || busAux.HeatPumpTypePassengerCompartment == HeatPumpType.none)) { + // throw new VectoException("HVAC System Configuration {0} requires PassengerAC Technology", hvacConfiguration); + //} if (mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfiguration) && (busAux.SeparateAirDistributionDucts == null || !busAux.SeparateAirDistributionDucts.Value)) { @@ -210,24 +210,28 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter if (busAux.HeatPumpTypeDriverCompartment == null) { throw new VectoException("HeatPumpTypeDriverCompartment input parameter is required"); } - if (busAux.HeatPumpTypePassengerCompartment == null) { + if (busAux.HeatPumpTypePassengerCompartments == null) { throw new VectoException("HeatPumpTypePassengerCompartment input parameter is required"); } if (busAux.HeatPumpModeDriverCompartment == null || (busAux.HeatPumpTypeDriverCompartment != HeatPumpType.none && busAux.HeatPumpModeDriverCompartment.Value == HeatPumpMode.N_A)) { throw new VectoException("HeatPumpTypeDriverCompartment input parameter is required"); } - if (busAux.HeatPumpModePassengerCompartment == null || (busAux.HeatPumpTypePassengerCompartment != HeatPumpType.none && busAux.HeatPumpModePassengerCompartment.Value == HeatPumpMode.N_A)) { - throw new VectoException("HeatPumpModePassengerCompartment input parameter is required"); - } + + //ToDo FK HeatPumpMode error check + //if (busAux.HeatPumpModePassengerCompartments == null || (busAux.HeatPumpTypePassengerCompartment != HeatPumpType.none && busAux.HeatPumpModePassengerCompartment.Value == HeatPumpMode.N_A)) { + // throw new VectoException("HeatPumpModePassengerCompartment input parameter is required"); + //} var heatPumpTypeDriverCompartment = busAux.HeatPumpModeDriverCompartment == HeatPumpMode.heating ? HeatPumpType.none : busAux.HeatPumpTypeDriverCompartment.Value; - var heatPumpTypePassengerCompartment = - busAux.HeatPumpModePassengerCompartment == HeatPumpMode.heating - ? HeatPumpType.none - : busAux.HeatPumpTypePassengerCompartment.Value; + + //ToDo FK HeatPumpMode for calculation COP + //var heatPumpTypePassengerCompartment = + // busAux.HeatPumpModePassengerCompartment == HeatPumpMode.heating + // ? HeatPumpType.none + // : busAux.HeatPumpTypePassengerCompartment.Value; var internalLength = hvacConfiguration == BusHVACSystemConfiguration.Configuration2 ? 2 * Constants.BusParameters.DriverCompartmentLength // OK @@ -265,14 +269,16 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter ssmInputs.VentilationRateHeating = DeclarationData.BusAuxiliaries.VentilationRate(hvacConfiguration, true); ssmInputs.HVACMaxCoolingPower = coolingPower.Item1 + coolingPower.Item2; - ssmInputs.HVACCompressorType = heatPumpTypePassengerCompartment; // use passenger compartment - ssmInputs.HVACTechnology = string.Format( - "{0} ({1})", busAux.SystemConfiguration.GetName(), - string.Join(", ", new[] { heatPumpTypePassengerCompartment.GetName(), heatPumpTypeDriverCompartment.GetName() })); - ; - ssmInputs.COP = DeclarationData.BusAuxiliaries.CalculateCOP( - coolingPower.Item1, heatPumpTypeDriverCompartment, coolingPower.Item2, heatPumpTypePassengerCompartment, - floorType); + + //ToDo FK COP calculation + //ssmInputs.HVACCompressorType = heatPumpTypePassengerCompartment; // use passenger compartment + //ssmInputs.HVACTechnology = string.Format( + // "{0} ({1})", busAux.SystemConfiguration.GetName(), + // string.Join(", ", new[] { heatPumpTypePassengerCompartment.GetName(), heatPumpTypeDriverCompartment.GetName() })); + //; + //ssmInputs.COP = DeclarationData.BusAuxiliaries.CalculateCOP( + // coolingPower.Item1, heatPumpTypeDriverCompartment, coolingPower.Item2, heatPumpTypePassengerCompartment, + // floorType); return ssmInputs; } diff --git a/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs index 90ff95329f..07987be178 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLMultistageBusReport.cs @@ -447,7 +447,7 @@ namespace TUGraz.VectoCore.OutputData.XML if (hvac.SystemConfiguration == null && hvac.HeatPumpModeDriverCompartment == null && hvac.HeatPumpTypeDriverCompartment == null && - hvac.HeatPumpModePassengerCompartment == null && hvac.HeatPumpTypePassengerCompartment == null && + hvac.HeatPumpModePassengerCompartments?.Any() != true && hvac.HeatPumpTypePassengerCompartments?.Any() != true && hvac.AuxHeaterPower == null && hvac.DoubleGlazing == null && hvac.AdjustableAuxiliaryHeater == null && hvac.SeparateAirDistributionDucts == null && hvac.WaterElectricHeater == null && hvac.AirElectricHeater == null && @@ -461,10 +461,7 @@ namespace TUGraz.VectoCore.OutputData.XML ? new XElement(v28 + XMLNames.Bus_HeatPumpTypeDriver, hvac.HeatPumpTypeDriverCompartment.GetLabel()) : null, hvac.HeatPumpModeDriverCompartment != null ? new XElement(v28 + XMLNames.Bus_HeatPumpModeDriver, hvac.HeatPumpModeDriverCompartment.GetLabel()) : null, - hvac.HeatPumpTypePassengerCompartment != null - ? new XElement(v28 + XMLNames.Bus_HeatPumpTypePassenger, hvac.HeatPumpTypePassengerCompartment.GetLabel()) : null, - hvac.HeatPumpModePassengerCompartment != null - ? new XElement(v28 + XMLNames.Bus_HeatPumpModePassenger, hvac.HeatPumpModePassengerCompartment.GetLabel()) : null, + GetHeatPumpPassengerCompartments(hvac.HeatPumpTypePassengerCompartments, hvac.HeatPumpModePassengerCompartments), hvac.AuxHeaterPower != null ? new XElement(v28 + XMLNames.Bus_AuxiliaryHeaterPower, hvac.AuxHeaterPower.ToXMLFormat(0)) : null, hvac.DoubleGlazing != null @@ -481,6 +478,25 @@ namespace TUGraz.VectoCore.OutputData.XML ? new XElement(v28 + XMLNames.Bus_OtherHeatingTechnology, hvac.OtherHeatingTechnology) : null ); } + + private IList<XElement> GetHeatPumpPassengerCompartments(IList<HeatPumpType> pumpTypes, IList<HeatPumpMode> pumpModes) + { + if (pumpTypes?.Any() != true || pumpModes?.Any() != true) + return null; + + if (pumpTypes.Count != pumpModes.Count) + return null; + + var result = new List<XElement>(); + + for (int i = 0; i < pumpTypes.Count; i++) { + result.Add(new XElement(v28 + XMLNames.Bus_HeatPumpTypePassenger, pumpTypes[i].GetLabel())); + result.Add(new XElement(v28 + XMLNames.Bus_HeatPumpModePassenger, pumpModes[i].GetLabel())); + } + + return result; + } + private XElement GetApplicationInformation() { diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs index 29cace4f5b..cf6a7a7c1f 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusConsolidatedInputDataTest.cs @@ -92,8 +92,8 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, busHVACAux.SystemConfiguration); Assert.AreEqual(HeatPumpType.non_R_744_2_stage, busHVACAux.HeatPumpTypeDriverCompartment); Assert.AreEqual(HeatPumpMode.heating, busHVACAux.HeatPumpModeDriverCompartment); - Assert.AreEqual(HeatPumpType.non_R_744_3_stage, busHVACAux.HeatPumpTypePassengerCompartment); - Assert.AreEqual(HeatPumpMode.cooling, busHVACAux.HeatPumpModePassengerCompartment); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, busHVACAux.HeatPumpTypePassengerCompartments[0]); + Assert.AreEqual(HeatPumpMode.cooling, busHVACAux.HeatPumpModePassengerCompartments[0]); Assert.AreEqual(50, busHVACAux.AuxHeaterPower.Value()); Assert.AreEqual(false, busHVACAux.DoubleGlazing); Assert.AreEqual(true, busHVACAux.AdjustableAuxiliaryHeater); diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs index 6495c59d2b..f90cb017a4 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusDataTest.cs @@ -632,8 +632,10 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(BusHVACSystemConfiguration.Configuration1, hvacAux.SystemConfiguration); Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpTypeDriverCompartment); Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); - Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpTypePassengerCompartment); - Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpModePassengerCompartment); + Assert.AreEqual(1, hvacAux.HeatPumpTypePassengerCompartments.Count); + Assert.AreEqual(1, hvacAux.HeatPumpModePassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpTypePassengerCompartments[0]); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpModePassengerCompartments[0]); Assert.AreEqual(50.SI<Watt>(), hvacAux.AuxHeaterPower); Assert.AreEqual(false, hvacAux.DoubleGlazing); Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); @@ -747,8 +749,10 @@ namespace TUGraz.VectoCore.Tests.XML Assert.AreEqual(BusHVACSystemConfiguration.Configuration0, hvacAux.SystemConfiguration); Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpTypeDriverCompartment); Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModeDriverCompartment); - Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpTypePassengerCompartment); - Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModePassengerCompartment); + Assert.AreEqual(1, hvacAux.HeatPumpTypePassengerCompartments.Count); + Assert.AreEqual(1, hvacAux.HeatPumpModePassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpTypePassengerCompartments[0]); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModePassengerCompartments[0]); Assert.AreEqual(40.SI<Watt>(), hvacAux.AuxHeaterPower); Assert.AreEqual(false, hvacAux.DoubleGlazing); Assert.AreEqual(false, hvacAux.AdjustableAuxiliaryHeater); diff --git a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs index ca78088966..d98dd858cf 100644 --- a/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs +++ b/VectoCore/VectoCoreTest/XML/XMLMultistageBusInputDataTest.cs @@ -112,8 +112,12 @@ 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(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpTypePassengerCompartment); - Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpModePassengerCompartment); + Assert.AreEqual(2, hvacAux.HeatPumpTypePassengerCompartments.Count); + Assert.AreEqual(2, hvacAux.HeatPumpModePassengerCompartments.Count); + Assert.AreEqual(HeatPumpType.non_R_744_2_stage, hvacAux.HeatPumpTypePassengerCompartments[0]); + Assert.AreEqual(HeatPumpMode.cooling, hvacAux.HeatPumpModePassengerCompartments[0]); + Assert.AreEqual(HeatPumpType.non_R_744_3_stage, hvacAux.HeatPumpTypePassengerCompartments[1]); + Assert.AreEqual(HeatPumpMode.heating, hvacAux.HeatPumpModePassengerCompartments[1]); Assert.AreEqual(50, hvacAux.AuxHeaterPower.Value()); Assert.AreEqual(false, hvacAux.DoubleGlazing); Assert.AreEqual(true, hvacAux.AdjustableAuxiliaryHeater); -- GitLab