From 6e6f970aabb5c3e3afb9609d3a63d9c33bbc9fd4 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 10 Apr 2020 17:12:48 +0200 Subject: [PATCH] work on single bus mode: use data from completed bus segment table, powertrain config from primary vehicle --- .../DeclarationDataAdapterSingleBus.cs | 224 ++---------------- ...arationModeSingleBusVectoRunDataFactory.cs | 42 +++- .../CompletedBusFactorMethodTest.cs | 12 +- .../Buses/FactorMethod/SingleBus_41-32b.vecto | 12 + .../Buses/FactorMethod/SingleBus_42-33b.vecto | 12 + VectoCore/VectoCoreTest/VectoCoreTest.csproj | 6 + 6 files changed, 98 insertions(+), 210 deletions(-) create mode 100644 VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_41-32b.vecto create mode 100644 VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_42-33b.vecto diff --git a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs index 3716679a84..5c4288d039 100644 --- a/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs +++ b/VectoCore/VectoCore/InputData/Reader/DataObjectAdapter/DeclarationDataAdapterSingleBus.cs @@ -7,6 +7,8 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.Reader.ComponentData; +using TUGraz.VectoCore.InputData.Reader.Impl; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Electrics; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.HVAC; using TUGraz.VectoCore.Models.BusAuxiliaries.DownstreamModules.Impl.Pneumatics; @@ -14,10 +16,11 @@ using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.Simulation.Data; using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Data; +using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox; namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter { - public class DeclarationDataAdapterSingleBus : DeclarationDataAdapterCompletedBusGeneric + public class DeclarationDataAdapterSingleBus : DeclarationDataAdapterCompletedBusSpecific { #region Implementation of IDeclarationDataAdapter @@ -45,226 +48,41 @@ namespace TUGraz.VectoCore.InputData.Reader.DataObjectAdapter return retVal; } - public override AirdragData CreateAirdragData( - IAirdragDeclarationInputData airdragData, Mission mission, Segment segment) - { - if (CompletedVehicle.Components.AirdragInputData == null || - CompletedVehicle.Components.AirdragInputData.AirDragArea == null) { - return DefaultAirdragData(mission); - } - - var aerodynamicDragArea = CompletedVehicle.Components.AirdragInputData.AirDragArea; - var retVal = SetCommonAirdragData(CompletedVehicle.Components.AirdragInputData); - retVal.CrossWindCorrectionCurve = new CrosswindCorrectionCdxALookup( - aerodynamicDragArea, - GetDeclarationAirResistanceCurve(mission.CrossWindCorrectionParameters, aerodynamicDragArea, mission.VehicleHeight), - CrossWindCorrectionMode.DeclarationModeCorrection); - - return retVal; - } - #endregion - public ISingleBusInputDataProvider SingleBusInputData { get; set; } - - protected IVehicleDeclarationInputData CompletedVehicle - { - get { return SingleBusInputData?.CompletedVehicle; } - } - - - #region Overrides of DeclarationDataAdapterPrimaryBus - - protected override double CalculateAlternatorEfficiency(IList<IAlternatorDeclarationInputData> alternators) + protected override TransmissionLossMap CreateGearLossMap( + ITransmissionInputData gear, uint i, bool useEfficiencyFallback, VehicleCategory vehicleCategory) { - var sum = 0.0; - foreach (var entry in alternators) { - sum += DeclarationData.BusAuxiliaries.AlternatorTechnologies.Lookup(entry.Technology); - } - - foreach (var entry in CompletedVehicle.Components.BusAuxiliaries.ElectricSupply.Alternators) { - sum += DeclarationData.BusAuxiliaries.AlternatorTechnologies.Lookup(entry.Technology); - } - - return sum / (alternators.Count + CompletedVehicle.Components.BusAuxiliaries.ElectricSupply.Alternators.Count); + return TransmissionLossMapReader.Create(gear.LossMap, gear.Ratio, string.Format("Gear {0}", i + 1), true); } - protected override ElectricsUserInputsConfig GetElectricalUserConfig( - Mission mission, IVehicleDeclarationInputData vehicleData, IActuations actuations, VehicleClass vehicleClass) - { - var currentDemand = GetElectricConsumers(mission, vehicleData, actuations); - var busAux = vehicleData.Components.BusAuxiliaries; - - return new ElectricsUserInputsConfig() { - SmartElectrical = busAux.ElectricSupply.SmartElectrics, - ElectricalConsumers = currentDemand, - AlternatorMap = - new SimpleAlternator( - CalculateAlternatorEfficiency( - busAux.ElectricSupply.Alternators.Concat(CompletedVehicle.Components.BusAuxiliaries.ElectricSupply.Alternators) - .ToList())) { - Technologies = busAux.ElectricSupply.Alternators - .Concat(CompletedVehicle.Components.BusAuxiliaries.ElectricSupply.Alternators).Select(x => x.Technology) - .ToList() - }, - PowerNetVoltage = Constants.BusAuxiliaries.ElectricSystem.PowernetVoltage, - StoredEnergyEfficiency = Constants.BusAuxiliaries.ElectricSystem.StoredEnergyEfficiency, - ResultCardIdle = new DummyResultCard(), - ResultCardOverrun = new DummyResultCard(), - ResultCardTraction = new DummyResultCard(), - AlternatorGearEfficiency = Constants.BusAuxiliaries.ElectricSystem.AlternatorGearEfficiency, - MaxAlternatorPower = busAux.ElectricSupply.MaxAlternatorPower, - ElectricStorageCapacity = busAux.ElectricSupply.ElectricStorageCapacity ?? 0.SI<WattSecond>() - }; - } - protected override bool VehicleHasElectricalConsumer(string consumerName, IBusAuxiliariesDeclarationData busAux) + protected override TorqueConverterData CreateTorqueConverterData( + ITorqueConverterDeclarationInputData torqueConverter, double ratio, CombustionEngineData engineData) { - var elConsumer = CompletedVehicle.Components.BusAuxiliaries.ElectricConsumers; - switch (consumerName) { - case "Day running lights LED bonus": return elConsumer.DayrunninglightsLED; - case "Position lights LED bonus": return elConsumer.PositionlightsLED; - case "Brake lights LED bonus": return elConsumer.BrakelightsLED; - case "Interior lights LED bonus": return elConsumer.InteriorLightsLED; - case "Headlights LED bonus": return elConsumer.HeadlightsLED; - default: return false; - } + return TorqueConverterDataReader.Create( + torqueConverter.TCData, + DeclarationData.TorqueConverter.ReferenceRPM, DeclarationData.TorqueConverter.MaxInputSpeed, + ExecutionMode.Declaration, ratio, + DeclarationData.TorqueConverter.CLUpshiftMinAcceleration, + DeclarationData.TorqueConverter.CCUpshiftMinAcceleration); } - protected override double CalculateLengthDependentElectricalConsumers(Mission mission, IVehicleDeclarationInputData vehicleData) + public override AxleGearData CreateAxleGearData(IAxleGearInputData data) { - return DeclarationData.BusAuxiliaries.CalculateLengthInteriorLights( - CompletedVehicle.Length, IsDoubleDecker, CompletedVehicle.FloorType, - CompletedVehicle.NumberOfPassengersLowerDeck) - .Value(); - } - - protected override PneumaticUserInputsConfig GetPneumaticUserConfig( - IVehicleDeclarationInputData vehicleData, Mission mission) - { - var retVal = base.GetPneumaticUserConfig(vehicleData, mission); - retVal.Doors = CompletedVehicle.DoorDriveTechnology; - retVal.KneelingHeight = VectoMath.Max( - 0.SI<Meter>(), CompletedVehicle.EntranceHeight - Constants.BusParameters.EntranceHeight); + var retVal = SetCommonAxleGearData(data); + retVal.AxleGear.LossMap = ReadAxleLossMap(data, false); return retVal; } - public override ISSMInputs CreateSSMModelParameters( - IBusAuxiliariesDeclarationData busAuxInputData, Mission mission, IFuelProperties heatingFuel, LoadingType loading) - { - var retVal = base.CreateSSMModelParameters(busAuxInputData, mission, heatingFuel, loading) as SSMInputs; - if (retVal == null) { - throw new VectoException("Unknonw SSMInput Instance"); - } - - var busAux = CompletedVehicle.Components.BusAuxiliaries; - - var hvacBusLength = busAux.HVACAux.SystemConfiguration == BusHVACSystemConfiguration.Configuration2 - ? 2 * Constants.BusParameters.DriverCompartmentLength - : CompletedVehicle.Length; - var correctedBusWidth = DeclarationData.BusAuxiliaries.CorrectedBusWidth(CompletedVehicle.Width); - - var hvacBusheight = DeclarationData.BusAuxiliaries.CalculateInternalHeight( - CompletedVehicle.FloorType, - IsDoubleDecker, CompletedVehicle.Height); - var coolingPower = CalculateMaxCoolingPower(CompletedVehicle, mission); - - retVal.BusFloorType = CompletedVehicle.FloorType; - retVal.Technologies = GetSSMTechnologyBenefits(busAuxInputData, CompletedVehicle.FloorType); - retVal.FuelFiredHeaterPower = busAux.HVACAux.AuxHeaterPower; - - retVal.BusWindowSurface = DeclarationData.BusAuxiliaries.WindowHeight(IsDoubleDecker) * hvacBusLength + - DeclarationData.BusAuxiliaries.FrontAndRearWindowArea(IsDoubleDecker); - retVal.BusSurfaceArea = 2 * (hvacBusLength * correctedBusWidth + hvacBusLength * CompletedVehicle.Height + - correctedBusWidth * CompletedVehicle.Height); - retVal.BusVolume = hvacBusLength * correctedBusWidth * hvacBusheight; - retVal.UValue = DeclarationData.BusAuxiliaries.UValue(CompletedVehicle.FloorType); - retVal.NumberOfPassengers = - (DeclarationData.BusAuxiliaries.CalculateBusFloorSurfaceArea(hvacBusLength, correctedBusWidth) * - mission.BusParameter.PassengerDensity * - (loading == LoadingType.LowLoading ? mission.MissionType.GetLowLoadFactorBus() : 1.0)).LimitTo( - 0, CompletedVehicle.NumberOfPassengersUpperDeck + CompletedVehicle.NumberOfPassengersLowerDeck) + 1; // add driver for 'heat input' - retVal.VentilationRate = DeclarationData.BusAuxiliaries.VentilationRate(busAux.HVACAux.SystemConfiguration, false); - retVal.VentilationRateHeating = - DeclarationData.BusAuxiliaries.VentilationRate(busAux.HVACAux.SystemConfiguration, true); - - retVal.HVACMaxCoolingPower = coolingPower.Item1 + coolingPower.Item2; - retVal.HVACCompressorType = busAux.HVACAux.CompressorTypePassenger; // use passenger compartment - retVal.HVACTechnology = string.Format( - "{0} ({1})", busAux.HVACAux.SystemConfiguration, - string.Join( - ", ", new[] { busAux.HVACAux.CompressorTypePassenger.GetName(), busAux.HVACAux.CompressorTypeDriver.GetName() })); - retVal.COP = DeclarationData.BusAuxiliaries.CalculateCOP( - coolingPower.Item1, busAux.HVACAux.CompressorTypeDriver, coolingPower.Item2, - busAux.HVACAux.CompressorTypePassenger, - CompletedVehicle.FloorType); - - return retVal; - } - - protected override Tuple<Watt, Watt> CalculateMaxCoolingPower(IVehicleDeclarationInputData vehicle, Mission mission) - { - var length = DeclarationData.BusAuxiliaries.CalculateInternalLength( - vehicle.Length, IsDoubleDecker, vehicle.FloorType, - vehicle.NumberOfPassengersLowerDeck); - var height = DeclarationData.BusAuxiliaries.CalculateInternalHeight(vehicle.FloorType, - IsDoubleDecker, vehicle.Height); - var volume = length * height * DeclarationData.BusAuxiliaries.CorrectedBusWidth(vehicle.Width); - - var hvacConfiguration = vehicle.Components.BusAuxiliaries.HVACAux.SystemConfiguration; - - var driver = DeclarationData.BusAuxiliaries.HVACMaxCoolingPower.DriverMaxCoolingPower( - hvacConfiguration, mission.MissionType); - var passenger = DeclarationData.BusAuxiliaries.HVACMaxCoolingPower.PassengerMaxCoolingPower( - hvacConfiguration, mission.MissionType, volume); - - return Tuple.Create(driver, passenger); - } + public ISingleBusInputDataProvider SingleBusInputData { get; set; } - protected override TechnologyBenefits GetSSMTechnologyBenefits( - IBusAuxiliariesDeclarationData inputData, FloorType floorType) + protected IVehicleDeclarationInputData CompletedVehicle { - var onVehicle = new List<SSMTechnology>(); - var hvacTech = CompletedVehicle.Components.BusAuxiliaries.HVACAux; - foreach (var item in DeclarationData.BusAuxiliaries.SSMTechnologyList) { - if ("Adjustable coolant thermostat".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - (inputData?.HVACAux.AdjustableCoolantThermostat ?? false)) { - onVehicle.Add(item); - } - - if ("Engine waste gas heat exchanger".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - (inputData?.HVACAux.EngineWasteGasHeatExchanger ?? false)) { - onVehicle.Add(item); - } - - if ("Separate air distribution ducts".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - hvacTech.SeparateAirDistributionDucts) { - onVehicle.Add(item); - } - if ("Adjustable auxiliary heater".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - hvacTech.AdjustableAuxiliaryHeater) { - onVehicle.Add(item); - } - if ("Heat pump systems".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - hvacTech.HeatPump) { - onVehicle.Add(item); - } - if ("Double-glazing".Equals(item.BenefitName, StringComparison.InvariantCultureIgnoreCase) && - hvacTech.DoubleGlasing) { - onVehicle.Add(item); - } - } - - return SelectBenefitForFloorType(floorType, onVehicle); + get { return SingleBusInputData?.CompletedVehicle; } } - #endregion - - protected bool IsDoubleDecker - { - get { return CompletedVehicle.NumberOfPassengersUpperDeck > 0; } - } } } diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs index 0615eb0da4..abb40c8b9d 100644 --- a/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs +++ b/VectoCore/VectoCore/InputData/Reader/Impl/DeclarationModeSingleBusVectoRunDataFactory.cs @@ -1,8 +1,11 @@ using System; using System.Collections.Generic; +using TUGraz.VectoCommon.BusAuxiliaries; +using TUGraz.VectoCommon.Exceptions; using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Configuration; using TUGraz.VectoCore.InputData; using TUGraz.VectoCore.InputData.Reader.ComponentData; using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; @@ -26,6 +29,36 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { #region Implementation of IVectoRunDataFactory + #region Overrides of DeclarationModePrimaryBusVectoRunDataFactory + + protected override Segment GetSegment(IVehicleDeclarationInputData vehicle) + { + //if (vehicle.VehicleCategory != VehicleCategory.HeavyBusCompletedVehicle) { + // throw new VectoException( + // "Invalid vehicle category for bus factory! {0}", vehicle.VehicleCategory.GetCategoryName()); + //} + + var completedVehicle = _singleBusInputData.CompletedVehicle; + + var segment = DeclarationData.CompletedBusSegments.Lookup( + _singleBusInputData.PrimaryVehicle.AxleConfiguration.NumAxles(), completedVehicle.VehicleCode, completedVehicle.RegisteredClass, completedVehicle.NumberOfPassengersLowerDeck, + completedVehicle.Height, completedVehicle.FloorType == FloorType.LowFloor); + if (!segment.Found) { + throw new VectoException( + "no segment found for vehicle configruation: vehicle category: {0}, axle configuration: {1}, articulated: {2}, primary", + vehicle.VehicleCategory, _singleBusInputData.PrimaryVehicle.AxleConfiguration, + vehicle.Articulated); + } + foreach (var mission in segment.Missions) { + mission.VehicleHeight = completedVehicle.Height + mission.BusParameter.DeltaHeight; + mission.BusParameter.VehicleLength = completedVehicle.Length; + } + + return segment; + } + + #endregion + protected override IDeclarationDataAdapter DataAdapter { get { return _dao; } } @@ -51,7 +84,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { var simulationRunData = new VectoRunData { Loading = loading.Key, VehicleData = DataAdapter.CreateVehicleData(vehicle, mission, loading), - AirdragData = _dao.CreateAirdragData(_singleBusInputData.CompletedVehicle.Components.AirdragInputData, mission, new Segment()), + AirdragData = _dao.CreateAirdragData(_singleBusInputData.CompletedVehicle, mission), EngineData = DataAdapter.CreateEngineData(InputDataProvider.JobInputData.Vehicle, engineMode, mission), GearboxData = _gearboxData, AxleGearData = _axlegearData, @@ -63,17 +96,18 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl { DriverData = _driverdata, ExecutionMode = ExecutionMode.Declaration, JobName = InputDataProvider.JobInputData.JobName, - ModFileSuffix = (engineModes.Count > 1 ? string.Format("_EngineMode{0}_", modeIdx) : "") + "_" + mission.BusParameter.BusGroup.GetClassNumber() + "_" + loading.Key.ToString(), + ModFileSuffix = (engineModes.Count > 1 ? string.Format("_EngineMode{0}_", modeIdx) : "") + "_" + mission.BusParameter.BusGroup.GetClassNumber() + "-Single_" + loading.Key.ToString(), Report = Report, Mission = mission, InputDataHash = InputDataProvider.XMLHash, SimulationType = SimulationType.DistanceCycle, GearshiftParameters = _gearshiftData, - ShiftStrategy = InputDataProvider.JobInputData.ShiftStrategy + VehicleDesignSpeed = _segment.DesignSpeed, + //ShiftStrategy = InputDataProvider.JobInputData.ShiftStrategy }; simulationRunData.EngineData.FuelMode = modeIdx; simulationRunData.VehicleData.VehicleClass = _segment.VehicleClass; - simulationRunData.BusAuxiliaries = _dao.CreateBusAuxiliariesData(mission, _singleBusInputData.PrimaryVehicle, simulationRunData); + simulationRunData.BusAuxiliaries = _dao.CreateBusAuxiliariesData(mission, _singleBusInputData.PrimaryVehicle, _singleBusInputData.CompletedVehicle, simulationRunData); return simulationRunData; } } diff --git a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs index bc8e00f0e4..8c864b688e 100644 --- a/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs +++ b/VectoCore/VectoCoreTest/Integration/CompletedBus/CompletedBusFactorMethodTest.cs @@ -971,8 +971,11 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus } - [TestCase(@"TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_nonSmart.xml", 12, TestName = "PrintVectoRunData PrimaryBus Group41 SD CO LL"), - TestCase(@"TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.xml", 1, TestName = "PrintVectoRunData PrimaryBus Group42 SD HU RL")] + [TestCase(@"TestData\Integration\Buses\FactorMethod\primary_heavyBus group41_nonSmart.xml", 12, TestName = "PrintVectoRunData PrimaryBus Group41 SD CO/LL"), + TestCase(@"TestData\Integration\Buses\FactorMethod\primary_heavyBus group42_SmartPS.xml", 1, TestName = "PrintVectoRunData PrimaryBus Group42 SD HU/RL"), + TestCase(@"TestData\Integration\Buses\FactorMethod\SingleBus_41-32b.vecto", 0, TestName = "PrintVectoRunData SingleBus Group 41/32b CO/LL"), + TestCase(@"TestData\Integration\Buses\FactorMethod\SingleBus_42-33b.vecto", 1, TestName = "PrintVectoRunData SingleBus Group 42/33b HU/RL"), + ] public void PrintModelParametersPrimaryBus(string jobFile, int runIdx) { var runs = GetVectoRunData(jobFile); @@ -1006,7 +1009,10 @@ namespace TUGraz.VectoCore.Tests.Integration.CompletedBus [TestCase(JobFile_Group41, TestName = "RunCompletedBusSimulation Group41/32b"), TestCase(JobFile_Group42, TestName = "RunCompletedBusSimulation Group42/33b"), TestCase(JobFilePrimary41, TestName = "RunPrimaryBusSimulation Group41"), - TestCase(JobFilePrimary42, TestName = "RunPrimaryBusSimulation Group42")] + TestCase(JobFilePrimary42, TestName = "RunPrimaryBusSimulation Group42"), + TestCase(@"TestData\Integration\Buses\FactorMethod\SingleBus_41-32b.vecto", TestName = "RunSingleBusSimulation Group 41/32b"), + TestCase(@"TestData\Integration\Buses\FactorMethod\SingleBus_42-33b.vecto", TestName = "RunSingleBusSimulation Group 42/33b"), + ] public void TestRunCompletedBusSimulation(string jobName) { var relativeJobPath = jobName; diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_41-32b.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_41-32b.vecto new file mode 100644 index 0000000000..cde3f3df79 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_41-32b.vecto @@ -0,0 +1,12 @@ +{ + "Header": { + "CreatedBy": "Markus Quaritsch, IVT, Graz University of Technology", + "Date": "2020-02-07T15:06:30.9725917Z", + "AppVersion": "2.2", + "FileVersion": 6 + }, + "Body": { + "PrimaryVehicle": "primary_heavyBus group41_nonSmart.xml", + "CompletedVehicle": "vecto_vehicle-completed_heavyBus_41.xml" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_42-33b.vecto b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_42-33b.vecto new file mode 100644 index 0000000000..09b9b2d92b --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Integration/Buses/FactorMethod/SingleBus_42-33b.vecto @@ -0,0 +1,12 @@ +{ + "Header": { + "CreatedBy": "Markus Quaritsch, IVT, Graz University of Technology", + "Date": "2020-02-07T15:06:30.9725917Z", + "AppVersion": "2.2", + "FileVersion": 6 + }, + "Body": { + "PrimaryVehicle": "primary_heavyBus group42_SmartPS.xml", + "CompletedVehicle": "vecto_vehicle-completed_heavyBus_42.xml" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index a4318ff5dd..872a7bc717 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -304,6 +304,12 @@ <None Include="TestData\Integration\Buses\FactorMethod\CompletedBus_42-33b.vecto"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Integration\Buses\FactorMethod\SingleBus_42-33b.vecto"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Integration\Buses\FactorMethod\SingleBus_41-32b.vecto"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Integration\Buses\SingleBus.vecto"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> -- GitLab