Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 8fbf5b6e authored by Markus QUARITSCH's avatar Markus QUARITSCH
Browse files

- refactoring SSM UnitTest

- adding testcase for post-processing correction of heating demand
parent 96fcca8b
No related branches found
No related tags found
No related merge requests found
...@@ -309,7 +309,7 @@ namespace TUGraz.VectoCore.OutputData ...@@ -309,7 +309,7 @@ namespace TUGraz.VectoCore.OutputData
var workBusAuxPSCompOff = nonSmartAirGen.Sum(x => x.P_compOff * x.dt); var workBusAuxPSCompOff = nonSmartAirGen.Sum(x => x.P_compOff * x.dt);
var workBusAuxPSCompOn = nonSmartAirGen.Sum(x => x.P_compOn * x.dt); var workBusAuxPSCompOn = nonSmartAirGen.Sum(x => x.P_compOn * x.dt);
var airBusAuxPSON = nonSmartAirGen.Sum(x => x.Nl_alwaysOn); var airBusAuxPSON = nonSmartAirGen.Sum(x => x.Nl_alwaysOn) ?? 0.SI<NormLiter>();
r.kAir = airBusAuxPSON.IsEqual(0) r.kAir = airBusAuxPSON.IsEqual(0)
? 0.SI(Unit.SI.Watt.Second.Per.Cubic.Meter) ? 0.SI(Unit.SI.Watt.Second.Per.Cubic.Meter)
......
using System.Collections.Generic;
using System.Linq;
using Moq;
using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.Impl;
using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter.SimulationComponents;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
namespace TUGraz.VectoCore.Tests.Models.Declaration.BusAux;
static internal class SSMBusAuxModelParameters
{
public static IAuxiliaryConfig CreateBusAuxInputParameters(MissionType missionType, VehicleClass vehicleClass,
VectoSimulationJobType vehicleType,
VehicleCode vehicleCode, RegistrationClass registrationClass,
AxleConfiguration axleconfiguration, bool articulated,
bool lowEntry, Meter length,
Meter height, Meter width, int numPassengersLowerdeck, int numPassengersUpperdeck,
HeatPumpType hpHeatingDriver, HeatPumpType hpCoolingDriver, HeatPumpType hpHeatingPassenger,
HeatPumpType hpCoolingPassenger, Watt auxHeaterPower,
bool airElectricHeater, bool waterElectricHeater, bool otherElectricHeater,
BusHVACSystemConfiguration hvacConfig, bool doubleGlazing, bool adjustableAuxHeater,
bool separateAirdistributionDicts, bool adjustableCoolantThermostat, bool engineWasteGasHeatExchanger,
string[] steeringpumps, string fanTech, AlternatorType alternatorTech, Meter entranceHeight)
{
var dao = new SpecificCompletedBusAuxiliaryDataAdapter(new PrimaryBusAuxiliaryDataAdapter());
var segment = DeclarationData.CompletedBusSegments.Lookup(axleconfiguration.NumAxles(),
vehicleCode, registrationClass, numPassengersLowerdeck, height, lowEntry);
var mission = segment.Missions.FirstOrDefault();
var primaryVehicle = new Mock<IVehicleDeclarationInputData>();
primaryVehicle.Setup(p => p.VehicleType).Returns(vehicleType);
primaryVehicle.Setup(p => p.AxleConfiguration).Returns(axleconfiguration);
primaryVehicle.Setup(p => p.Articulated).Returns(articulated);
var primaryComponents = new Mock<IVehicleComponentsDeclaration>();
var primaryBusAux = new Mock<IBusAuxiliariesDeclarationData>();
var primaryBusAuxPS_S = new Mock<IPneumaticSupplyDeclarationData>();
var primaryBusAuxPS_C = new Mock<IPneumaticConsumersDeclarationData>();
var primaryBusAuxHVAC = new Mock<IHVACBusAuxiliariesDeclarationData>();
var primaryBusAuxES = new Mock<IElectricSupplyDeclarationData>();
primaryVehicle.Setup(p => p.Components).Returns(primaryComponents.Object);
primaryComponents.Setup(p => p.BusAuxiliaries).Returns(primaryBusAux.Object);
primaryBusAux.Setup(p => p.PneumaticSupply).Returns(primaryBusAuxPS_S.Object);
primaryBusAux.Setup(p => p.PneumaticConsumers).Returns(primaryBusAuxPS_C.Object);
primaryBusAux.Setup(p => p.HVACAux).Returns(primaryBusAuxHVAC.Object);
primaryBusAux.Setup(p => p.ElectricSupply).Returns(primaryBusAuxES.Object);
primaryBusAux.Setup(p => p.FanTechnology).Returns(fanTech);
primaryBusAux.Setup(p => p.SteeringPumpTechnology).Returns(steeringpumps.ToList);
primaryBusAuxPS_S.Setup(p => p.CompressorDrive).Returns(CompressorDrive.electrically);
primaryBusAuxPS_S.Setup(p => p.CompressorSize).Returns("Medium Supply 2-stage");
primaryBusAuxPS_S.Setup(p => p.SmartAirCompression).Returns(false);
primaryBusAuxPS_S.Setup(p => p.SmartRegeneration).Returns(false);
primaryBusAuxES.Setup(p => p.AlternatorTechnology).Returns(alternatorTech);
primaryBusAuxES.Setup(p => p.Alternators).Returns(new[] { new AlternatorInputData(28.3.SI<Volt>(), 50.SI<Ampere>()) }.Cast<IAlternatorDeclarationInputData>().ToList());
primaryBusAuxES.Setup(p => p.ElectricStorage).Returns(new List<IBusAuxElectricStorageDeclarationInputData>());
primaryBusAuxPS_C.Setup(p => p.AdBlueDosing).Returns(ConsumerTechnology.Mechanically);
primaryBusAuxPS_C.Setup(p => p.AirsuspensionControl).Returns(ConsumerTechnology.Electrically);
primaryBusAuxHVAC.Setup(p => p.DoubleGlazing).Returns(doubleGlazing);
primaryBusAuxHVAC.Setup(p => p.AdjustableAuxiliaryHeater).Returns(adjustableAuxHeater);
primaryBusAuxHVAC.Setup(p => p.SeparateAirDistributionDucts).Returns(separateAirdistributionDicts);
primaryBusAuxHVAC.Setup(p => p.AdjustableCoolantThermostat).Returns(adjustableCoolantThermostat);
primaryBusAuxHVAC.Setup(p => p.EngineWasteGasHeatExchanger).Returns(engineWasteGasHeatExchanger);
var completedVehicle = new Mock<IVehicleDeclarationInputData>();
completedVehicle.Setup(c => c.VehicleCode).Returns(vehicleCode);
completedVehicle.Setup(c => c.Length).Returns(length);
completedVehicle.Setup(c => c.Height).Returns(height);
completedVehicle.Setup(c => c.Width).Returns(width);
completedVehicle.Setup(c => c.NumberPassengerSeatsLowerDeck).Returns(numPassengersLowerdeck);
completedVehicle.Setup(c => c.NumberPassengersStandingLowerDeck).Returns(0);
completedVehicle.Setup(c => c.NumberPassengerSeatsUpperDeck).Returns(numPassengersUpperdeck);
completedVehicle.Setup(c => c.NumberPassengersStandingUpperDeck).Returns(0);
completedVehicle.Setup(c => c.RegisteredClass).Returns(registrationClass);
completedVehicle.Setup(c => c.LowEntry).Returns(lowEntry);
completedVehicle.Setup(c => c.EntranceHeight).Returns(entranceHeight);
var completedComponents = new Mock<IVehicleComponentsDeclaration>();
var completedBusAux = new Mock<IBusAuxiliariesDeclarationData>();
var completedHVACAux = new Mock<IHVACBusAuxiliariesDeclarationData>();
completedBusAux.Setup(c => c.HVACAux).Returns(completedHVACAux.Object);
completedComponents.Setup(c => c.BusAuxiliaries).Returns(completedBusAux.Object);
completedVehicle.Setup(c => c.Components).Returns(completedComponents.Object);
completedHVACAux.Setup(c => c.SystemConfiguration).Returns(hvacConfig);
completedHVACAux.Setup(c => c.AuxHeaterPower).Returns(auxHeaterPower);
completedHVACAux.Setup(c => c.SeparateAirDistributionDucts).Returns(mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfig));
completedHVACAux.Setup(c => c.HeatPumpTypeHeatingDriverCompartment).Returns(hpHeatingDriver);
completedHVACAux.Setup(c => c.HeatPumpTypeHeatingPassengerCompartment).Returns(hpHeatingPassenger);
completedHVACAux.Setup(c => c.HeatPumpTypeCoolingDriverCompartment).Returns(hpCoolingDriver);
completedHVACAux.Setup(c => c.HeatPumpTypeCoolingPassengerCompartment).Returns(hpCoolingPassenger);
completedHVACAux.Setup(c => c.AirElectricHeater).Returns(airElectricHeater);
completedHVACAux.Setup(c => c.WaterElectricHeater).Returns(waterElectricHeater);
completedHVACAux.Setup(c => c.OtherHeatingTechnology).Returns(otherElectricHeater);
var runData = new VectoRunData() {
Mission = mission,
Loading = LoadingType.ReferenceLoad,
VehicleData = new VehicleData() {
VehicleClass = vehicleClass,
},
Retarder = new RetarderData() {
Type = RetarderType.None
}
};
var retVal = dao.CreateBusAuxiliariesData(mission, primaryVehicle.Object, completedVehicle.Object, runData);
return retVal;
}
}
\ No newline at end of file
using System;
using System.Linq;
using Moq;
using NUnit.Framework;
using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.Reader.ComponentData;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.Simulation.DataBus;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Impl;
using TUGraz.VectoCore.OutputData;
namespace TUGraz.VectoCore.Tests.Models.Declaration.BusAux;
[TestFixture, Parallelizable(ParallelScope.All)]
public class SSMHeatingPostProcessingCorrection
{
private const BusHVACSystemConfiguration CFG1 = BusHVACSystemConfiguration.Configuration1;
private const BusHVACSystemConfiguration CFG2 = BusHVACSystemConfiguration.Configuration2;
private const BusHVACSystemConfiguration CFG3 = BusHVACSystemConfiguration.Configuration3;
private const BusHVACSystemConfiguration CFG4 = BusHVACSystemConfiguration.Configuration4;
private const BusHVACSystemConfiguration CFG5 = BusHVACSystemConfiguration.Configuration5;
private const BusHVACSystemConfiguration CFG6 = BusHVACSystemConfiguration.Configuration6;
private const BusHVACSystemConfiguration CFG7 = BusHVACSystemConfiguration.Configuration7;
private const BusHVACSystemConfiguration CFG8 = BusHVACSystemConfiguration.Configuration8;
private const BusHVACSystemConfiguration CFG9 = BusHVACSystemConfiguration.Configuration9;
private const BusHVACSystemConfiguration CFG10 = BusHVACSystemConfiguration.Configuration10;
private const HeatPumpType HeatPumpNone = HeatPumpType.none;
private const HeatPumpType HeatPumpR744 = HeatPumpType.R_744;
private const HeatPumpType HeatPump2Stage = HeatPumpType.non_R_744_2_stage;
private const HeatPumpType HeatPump3Stage = HeatPumpType.non_R_744_3_stage;
private const HeatPumpType HeatPumpCont = HeatPumpType.non_R_744_continuous;
private const HeaterType NoElHtr = HeaterType.None;
private const HeaterType AirElHtr = HeaterType.AirElectricHeater;
private const HeaterType WaterElHtr = HeaterType.WaterElectricHeater;
private const HeaterType OthrElHtr = HeaterType.OtherElectricHeating;
private const double AuxHtrPwr0 = 0.0;
private const double AuxHtrPwr30 = 30.0e3;
private const string FuelMap = "engine speed, torque, fuel consumption\n" +
"500,-31,0\n" +
"500,0,500\n" +
"500,1000,24000\n" +
"2500,-109,0\n" +
"2500,0,3800\n" +
"2500,1000,32000\n";
protected static readonly FuelData.Entry Fuel = FuelData.Diesel;
[
TestCase("a", CFG1, HeatPumpNone, HeatPumpNone, 0, AuxHtrPwr0, 0, 0),
TestCase("b", CFG1, HeatPumpNone, HeatPumpNone, 0, AuxHtrPwr30, 6685488.8606, 0.1565688),
TestCase("c", CFG1, HeatPumpNone, HeatPumpNone, 4, AuxHtrPwr30, 205671.4565, 0.0048166),
]
public void TestModDataPostprocessing_Conventional(string sort, BusHVACSystemConfiguration cfg, HeatPumpType driverHpHeating, HeatPumpType passengerHpHeating,
double fuelConsumptionKg, double auxhHeaterPwr, double expectedAuxHeatingDemandJ, double expectedFcAuxHeaterKg)
{
var correction = new ModalDataPostprocessingCorrection();
var busAux = GetAuxParametersConventionalSingleDeckForTest(cfg, driverHeatPumpHeating: driverHpHeating, passengerHeatPumpHeating: passengerHpHeating, auxHeaterPower: auxhHeaterPwr.SI<Watt>());
var runData = GetVectoRunDataConventional(busAux);
var mockModData = GetConventionalMockModData(runData, fuelConsumptionKg.SI<Kilogram>());
var corrected = correction.ApplyCorrection(mockModData, runData);
Assert.NotNull(corrected);
var fcCorr = corrected.FuelConsumptionCorrection(Fuel) as FuelConsumptionCorrection;
Assert.NotNull(fcCorr);
Console.WriteLine($"{corrected.AuxHeaterDemand.Value()}, {fcCorr.FcAuxHtr.Value()}");
Assert.AreEqual(expectedAuxHeatingDemandJ, corrected.AuxHeaterDemand.Value(), 1e-3, "expectedAuxHeatingDemand");
Assert.AreEqual(expectedFcAuxHeaterKg, fcCorr.FcAuxHtr.Value(), 1e-6, "expectedFcAuxHeater");
}
protected VectoRunData GetVectoRunDataConventional(IAuxiliaryConfig busAux)
{
var runData = new VectoRunData() {
DriverData = new DriverData() {
EngineStopStart = new DriverData.EngineStopStartData() {
UtilityFactorDriving = 0.8,
UtilityFactorStandstill = 0.8
}
},
EngineData = new CombustionEngineData() {
WHRType = WHRType.None,
IdleSpeed = 600.RPMtoRad(),
Fuels = new[] { new CombustionEngineFuelData() {
FuelData =Fuel,
ConsumptionMap = FuelConsumptionMapReader.ReadFromStream(FuelMap.ToStream()),
}}.ToList(),
},
BusAuxiliaries = busAux
};
return runData;
}
protected IModalDataContainer GetConventionalMockModData(VectoRunData runData, Kilogram totalFuelConsumption)
{
var mockContainer = new Mock<IVehicleContainer>();
var eng = new Mock<IEngineInfo>();
eng.Setup(e => e.EngineIdleSpeed).Returns(runData.EngineData.IdleSpeed);
//mockContainer.Setup(c => c.ModalData).Returns(m.Object);
mockContainer.Setup(c => c.EngineInfo).Returns(eng.Object);
var busAux = new BusAuxiliariesAdapter(mockContainer.Object, runData.BusAuxiliaries);
var m = new Mock<IModalDataContainer>();
m.Setup(x => x.Duration).Returns(3600.SI<Second>());
m.Setup(x => x.Distance).Returns(30000.SI<Meter>());
m.Setup(x => x.TimeIntegral<WattSecond>(ModalResultField.P_WHR_el_corr, null)).Returns(0.SI<WattSecond>());
m.Setup(x => x.TimeIntegral<WattSecond>(ModalResultField.P_WHR_mech_corr, null)).Returns(0.SI<WattSecond>());
m.Setup(x => x.TimeIntegral<WattSecond>(ModalResultField.P_busAux_ES_consumer_sum, null))
.Returns(0.SI<WattSecond>());
m.Setup(x => x.TimeIntegral<WattSecond>(ModalResultField.P_busAux_ES_generated, null))
.Returns(0.SI<WattSecond>());
m.Setup(x => x.TimeIntegral<WattSecond>(ModalResultField.P_ice_start, null)).Returns(0.SI<WattSecond>());
m.Setup(x => x.GetValues<NormLiter>(ModalResultField.Nl_busAux_PS_generated)).Returns(new[] { 2470.5180.SI<NormLiter>() });
m.Setup(x => x.FuelData).Returns(new IFuelProperties[] { Fuel });
m.Setup(x => x.TimeIntegral<Kilogram>(It.IsIn(Fuel.FuelType.GetLabel()), null)).Returns<string, Func<SI, bool>>((f,_) => totalFuelConsumption);
m.Setup(x => x.GetColumnName(It.IsNotNull<IFuelProperties>(), It.IsNotNull<ModalResultField>()))
.Returns<IFuelProperties, ModalResultField>((f, m) => f.GetLabel());
m.Setup(x => x.EngineLineCorrectionFactor(It.IsIn(Fuel)))
.Returns(200.SI(Unit.SI.Kilo.Gramm.Per.Kilo.Watt.Hour).Cast<KilogramPerWattSecond>());
m.Setup(x => x.AuxHeaterDemandCalc).Returns(busAux.AuxHeaterDemandCalculation);
return m.Object;
}
protected IAuxiliaryConfig GetAuxParametersConventionalSingleDeckForTest(BusHVACSystemConfiguration hvacConfig, HeatPumpType? driverHeatpumpCooling = null,
HeatPumpType? passengerHeatpumpCooling = null, HeatPumpType? driverHeatPumpHeating = null, HeatPumpType? passengerHeatPumpHeating = null,
Watt auxHeaterPower = null, HeaterType? electricHeater = null, int passengerCount = 40, double length = 12, double height = 3)
{
return SSMBusAuxModelParameters.CreateBusAuxInputParameters(MissionType.Urban,
VehicleClass.Class31a,
VectoSimulationJobType.ConventionalVehicle,
VehicleCode.CA,
RegistrationClass.II,
AxleConfiguration.AxleConfig_4x2,
articulated: false,
lowEntry: false,
length: length.SI<Meter>(),
height: height.SI<Meter>(),
width: 2.55.SI<Meter>(),
numPassengersLowerdeck: passengerCount,
numPassengersUpperdeck: 0,
hpHeatingDriver: driverHeatPumpHeating ?? HeatPumpType.none,
hpCoolingDriver: driverHeatpumpCooling ?? HeatPumpType.none,
hpHeatingPassenger: passengerHeatPumpHeating ?? HeatPumpType.none,
hpCoolingPassenger: passengerHeatpumpCooling ?? HeatPumpType.none,
auxHeaterPower: auxHeaterPower ?? 0.SI<Watt>(),
airElectricHeater: electricHeater != null && (electricHeater & HeaterType.AirElectricHeater) != 0,
waterElectricHeater: electricHeater != null && (electricHeater & HeaterType.WaterElectricHeater) != 0,
otherElectricHeater: electricHeater != null && (electricHeater & HeaterType.OtherElectricHeating) != 0,
hvacConfig,
doubleGlazing: false,
adjustableAuxHeater: false,
separateAirdistributionDicts: false,
adjustableCoolantThermostat: false,
engineWasteGasHeatExchanger: false,
steeringpumps: new[] { "Dual displacement" },
fanTech: "Crankshaft mounted - Discrete step clutch",
alternatorTech: AlternatorType.Conventional, entranceHeight: 0.3.SI<Meter>());
}
}
\ No newline at end of file
...@@ -1576,19 +1576,11 @@ public class SSMTestHeatingCooling ...@@ -1576,19 +1576,11 @@ public class SSMTestHeatingCooling
} }
//public void SSMTest_HeatingDistribution_SingleEnvironment(BusHVACSystemConfiguration cfg, int envId, protected IAuxiliaryConfig GetAuxParametersConventionalSingleDeckForTest(BusHVACSystemConfiguration hvacConfig, HeatPumpType? driverHeatpumpCooling = null,
// HeatPumpType driverHeatpump,
// HeatPumpType passengerHeatpump, HeaterType electricHeater, double auxHeaterPwr,
// HeatingDistributionCase expectedHeatingDistributionCaseDriver,
// HeatingDistributionCase expectedHeatingDistributionCasePassenger,
// double expectedHPElPwrW, double expectedHPMechPwrW, double expecetdElecricPowerElHeater,
// double expectedAuxHeater) { }
private IAuxiliaryConfig GetAuxParametersConventionalSingleDeckForTest(BusHVACSystemConfiguration hvacConfig, HeatPumpType? driverHeatpumpCooling = null,
HeatPumpType? passengerHeatpumpCooling = null, HeatPumpType? driverHeatPumpHeating = null, HeatPumpType? passengerHeatPumpHeating = null, HeatPumpType? passengerHeatpumpCooling = null, HeatPumpType? driverHeatPumpHeating = null, HeatPumpType? passengerHeatPumpHeating = null,
Watt auxHeaterPower = null, HeaterType? electricHeater = null, int passengerCount = 40, double length = 12, double height = 3) Watt auxHeaterPower = null, HeaterType? electricHeater = null, int passengerCount = 40, double length = 12, double height = 3)
{ {
return CreateBusAuxInputParameters(MissionType.Urban, return SSMBusAuxModelParameters.CreateBusAuxInputParameters(MissionType.Urban,
VehicleClass.Class31a, VehicleClass.Class31a,
VectoSimulationJobType.ConventionalVehicle, VectoSimulationJobType.ConventionalVehicle,
VehicleCode.CA, VehicleCode.CA,
...@@ -1621,108 +1613,4 @@ public class SSMTestHeatingCooling ...@@ -1621,108 +1613,4 @@ public class SSMTestHeatingCooling
} }
private IAuxiliaryConfig CreateBusAuxInputParameters(MissionType missionType, VehicleClass vehicleClass,
VectoSimulationJobType vehicleType,
VehicleCode vehicleCode, RegistrationClass registrationClass,
AxleConfiguration axleconfiguration, bool articulated,
bool lowEntry, Meter length,
Meter height, Meter width, int numPassengersLowerdeck, int numPassengersUpperdeck,
HeatPumpType hpHeatingDriver, HeatPumpType hpCoolingDriver, HeatPumpType hpHeatingPassenger,
HeatPumpType hpCoolingPassenger, Watt auxHeaterPower,
bool airElectricHeater, bool waterElectricHeater, bool otherElectricHeater,
BusHVACSystemConfiguration hvacConfig, bool doubleGlazing, bool adjustableAuxHeater,
bool separateAirdistributionDicts, bool adjustableCoolantThermostat, bool engineWasteGasHeatExchanger,
string[] steeringpumps, string fanTech, AlternatorType alternatorTech, Meter entranceHeight)
{
var dao = new SpecificCompletedBusAuxiliaryDataAdapter(new PrimaryBusAuxiliaryDataAdapter());
var segment = DeclarationData.CompletedBusSegments.Lookup(axleconfiguration.NumAxles(),
vehicleCode, registrationClass, numPassengersLowerdeck, height, lowEntry);
var mission = segment.Missions.FirstOrDefault();
var primaryVehicle = new Mock<IVehicleDeclarationInputData>();
primaryVehicle.Setup(p => p.VehicleType).Returns(vehicleType);
primaryVehicle.Setup(p => p.AxleConfiguration).Returns(axleconfiguration);
primaryVehicle.Setup(p => p.Articulated).Returns(articulated);
var primaryComponents = new Mock<IVehicleComponentsDeclaration>();
var primaryBusAux = new Mock<IBusAuxiliariesDeclarationData>();
var primaryBusAuxPS_S = new Mock<IPneumaticSupplyDeclarationData>();
var primaryBusAuxPS_C = new Mock<IPneumaticConsumersDeclarationData>();
var primaryBusAuxHVAC = new Mock<IHVACBusAuxiliariesDeclarationData>();
var primaryBusAuxES = new Mock<IElectricSupplyDeclarationData>();
primaryVehicle.Setup(p => p.Components).Returns(primaryComponents.Object);
primaryComponents.Setup(p => p.BusAuxiliaries).Returns(primaryBusAux.Object);
primaryBusAux.Setup(p => p.PneumaticSupply).Returns(primaryBusAuxPS_S.Object);
primaryBusAux.Setup(p => p.PneumaticConsumers).Returns(primaryBusAuxPS_C.Object);
primaryBusAux.Setup(p => p.HVACAux).Returns(primaryBusAuxHVAC.Object);
primaryBusAux.Setup(p => p.ElectricSupply).Returns(primaryBusAuxES.Object);
primaryBusAux.Setup(p => p.FanTechnology).Returns(fanTech);
primaryBusAux.Setup(p => p.SteeringPumpTechnology).Returns(steeringpumps.ToList);
primaryBusAuxPS_S.Setup(p => p.CompressorDrive).Returns(CompressorDrive.electrically);
primaryBusAuxPS_S.Setup(p => p.CompressorSize).Returns("Medium Supply 2-stage");
primaryBusAuxPS_S.Setup(p => p.SmartAirCompression).Returns(false);
primaryBusAuxPS_S.Setup(p => p.SmartRegeneration).Returns(false);
primaryBusAuxES.Setup(p => p.AlternatorTechnology).Returns(alternatorTech);
primaryBusAuxES.Setup(p => p.Alternators).Returns(new[] { new AlternatorInputData(28.3.SI<Volt>(), 50.SI<Ampere>()) }.Cast<IAlternatorDeclarationInputData>().ToList());
primaryBusAuxES.Setup(p => p.ElectricStorage).Returns(new List<IBusAuxElectricStorageDeclarationInputData>());
primaryBusAuxPS_C.Setup(p => p.AdBlueDosing).Returns(ConsumerTechnology.Mechanically);
primaryBusAuxPS_C.Setup(p => p.AirsuspensionControl).Returns(ConsumerTechnology.Electrically);
primaryBusAuxHVAC.Setup(p => p.DoubleGlazing).Returns(doubleGlazing);
primaryBusAuxHVAC.Setup(p => p.AdjustableAuxiliaryHeater).Returns(adjustableAuxHeater);
primaryBusAuxHVAC.Setup(p => p.SeparateAirDistributionDucts).Returns(separateAirdistributionDicts);
primaryBusAuxHVAC.Setup(p => p.AdjustableCoolantThermostat).Returns(adjustableCoolantThermostat);
primaryBusAuxHVAC.Setup(p => p.EngineWasteGasHeatExchanger).Returns(engineWasteGasHeatExchanger);
var completedVehicle = new Mock<IVehicleDeclarationInputData>();
completedVehicle.Setup(c => c.VehicleCode).Returns(vehicleCode);
completedVehicle.Setup(c => c.Length).Returns(length);
completedVehicle.Setup(c => c.Height).Returns(height);
completedVehicle.Setup(c => c.Width).Returns(width);
completedVehicle.Setup(c => c.NumberPassengerSeatsLowerDeck).Returns(numPassengersLowerdeck);
completedVehicle.Setup(c => c.NumberPassengersStandingLowerDeck).Returns(0);
completedVehicle.Setup(c => c.NumberPassengerSeatsUpperDeck).Returns(numPassengersUpperdeck);
completedVehicle.Setup(c => c.NumberPassengersStandingUpperDeck).Returns(0);
completedVehicle.Setup(c => c.RegisteredClass).Returns(registrationClass);
completedVehicle.Setup(c => c.LowEntry).Returns(lowEntry);
completedVehicle.Setup(c => c.EntranceHeight).Returns(entranceHeight);
var completedComponents = new Mock<IVehicleComponentsDeclaration>();
var completedBusAux = new Mock<IBusAuxiliariesDeclarationData>();
var completedHVACAux = new Mock<IHVACBusAuxiliariesDeclarationData>();
completedBusAux.Setup(c => c.HVACAux).Returns(completedHVACAux.Object);
completedComponents.Setup(c => c.BusAuxiliaries).Returns(completedBusAux.Object);
completedVehicle.Setup(c => c.Components).Returns(completedComponents.Object);
completedHVACAux.Setup(c => c.SystemConfiguration).Returns(hvacConfig);
completedHVACAux.Setup(c => c.AuxHeaterPower).Returns(auxHeaterPower);
completedHVACAux.Setup(c => c.SeparateAirDistributionDucts).Returns(mission.BusParameter.SeparateAirDistributionDuctsHVACCfg.Contains(hvacConfig));
completedHVACAux.Setup(c => c.HeatPumpTypeHeatingDriverCompartment).Returns(hpHeatingDriver);
completedHVACAux.Setup(c => c.HeatPumpTypeHeatingPassengerCompartment).Returns(hpHeatingPassenger);
completedHVACAux.Setup(c => c.HeatPumpTypeCoolingDriverCompartment).Returns(hpCoolingDriver);
completedHVACAux.Setup(c => c.HeatPumpTypeCoolingPassengerCompartment).Returns(hpCoolingPassenger);
completedHVACAux.Setup(c => c.AirElectricHeater).Returns(airElectricHeater);
completedHVACAux.Setup(c => c.WaterElectricHeater).Returns(waterElectricHeater);
completedHVACAux.Setup(c => c.OtherHeatingTechnology).Returns(otherElectricHeater);
var runData = new VectoRunData() {
Mission = mission,
Loading = LoadingType.ReferenceLoad,
VehicleData = new VehicleData() {
VehicleClass = vehicleClass,
},
Retarder = new RetarderData() {
Type = RetarderType.None
}
};
var retVal = dao.CreateBusAuxiliariesData(mission, primaryVehicle.Object, completedVehicle.Object, runData);
return retVal;
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment