Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit ad8d44e3 authored by Franz KOBER josef's avatar Franz KOBER josef
Browse files

consolidated multistages implementation added

parent c9dc061b
Branches
Tags
No related merge requests found
Showing
with 1149 additions and 47 deletions
......@@ -99,6 +99,10 @@ namespace TUGraz.VectoCommon.InputData
IPrimaryVehicleInformationInputDataProvider PrimaryVehicle { get; }
IList<IManufacturingStageInputData> ManufacturingStages { get; }
IManufacturingStageInputData ConsolidateManufacturingStage { get; }
bool InputComplete { get; }
}
......
......@@ -351,6 +351,19 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
XmlNode componentNode, string sourceFile)
: base(vehicle, componentNode, sourceFile) {}
private bool IsBusHVACTagEmpty()
{
return SystemConfiguration == null && HeatPumpTypeDriverCompartment == null && HeatPumpModeDriverCompartment == null &&
HeatPumpTypePassengerCompartment == null && HeatPumpModePassengerCompartment == null && AuxHeaterPower == null &&
DoubleGlazing == null && AdjustableAuxiliaryHeater == null && SeparateAirDistributionDucts == null &&
WaterElectricHeater == null && AirElectricHeater == null && OtherHeatingTechnology == null ;
}
public override IHVACBusAuxiliariesDeclarationData HVACAux
{
get { return IsBusHVACTagEmpty() ? null : this; }
}
public override BusHVACSystemConfiguration? SystemConfiguration
{
......@@ -458,6 +471,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
}
}
private bool IsElectricConsumersTagEmpty()
{
return InteriorLightsLED == null && DayrunninglightsLED == null && PositionlightsLED == null &&
HeadlightsLED == null && BrakelightsLED == null;
}
public override IElectricConsumersDeclarationData ElectricConsumers
{
get { return IsElectricConsumersTagEmpty() ? null : this; }
}
public override bool? InteriorLightsLED
{
......
......@@ -3,6 +3,7 @@ using System.Collections.Generic;
using System.Linq;
using System.Xml;
using System.Xml.Linq;
using Ninject;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
......@@ -79,6 +80,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
private IPrimaryVehicleInformationInputDataProvider _primaryVehicle;
private IList<IManufacturingStageInputData> _manufacturingStages;
private IManufacturingStageInputData _concolidateManfacturingStage;
public XMLDeclarationMultistageJobInputDataV01(XmlNode node, IXMLMultistageInputDataProvider inputProvider,
......@@ -98,6 +100,16 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
get { return _manufacturingStages ?? (_manufacturingStages = Reader.ManufacturingStages); }
}
public IManufacturingStageInputData ConsolidateManufacturingStage
{
get { return _concolidateManfacturingStage ?? (_concolidateManfacturingStage = Reader.ConsolidateManufacturingStage); }
}
public bool InputComplete
{
get { return Reader.InputComplete; }
}
public IXMLMultistageJobReader Reader { protected get; set; }
public IXMLMultistageInputDataProvider InputData { get; }
......@@ -268,4 +280,39 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
public IXMLMultistageReader Reader { protected get; set; }
}
// ---------------------------------------------------------------------------------------
public class XMLDeclarationVIFInputData : IMultistageVIFInputData
{
private readonly IXMLInputDataReader _xmlInputReader;
public XMLDeclarationVIFInputData(string vifFileName, IVehicleDeclarationInputData vehicleInput)
{
var kernel = new StandardKernel(new VectoNinjectModule());
_xmlInputReader = kernel.Get<IXMLInputDataReader>();
VehicleInputData = vehicleInput;
MultistageInputData = CreateMultistageReader(vifFileName);
}
private IMultistageBusInputDataProvider CreateMultistageReader(string vifFileName)
{
var reader = XmlReader.Create(vifFileName);
return _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
}
public DataSource DataSource
{
get { return null; }
}
public IVehicleDeclarationInputData VehicleInputData { get; }
public IMultistageBusInputDataProvider MultistageInputData { get; }
}
}
\ No newline at end of file
......@@ -1336,13 +1336,22 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider
}
}
public override IVehicleComponentsDeclaration Components
{
get
{
if (ComponentNode == null)
return null;
return _components ?? (_components = ComponentReader.ComponentInputData);
if(_components == null)
_components = ComponentReader.ComponentInputData;
if (_components.BusAuxiliaries == null && _components.AirdragInputData == null)
return null;
return _components;
}
}
......
......@@ -28,6 +28,11 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
IPrimaryVehicleInformationInputDataProvider PrimaryVehicle { get; }
IList<IManufacturingStageInputData> ManufacturingStages { get; }
IManufacturingStageInputData ConsolidateManufacturingStage { get; }
bool InputComplete { get; }
}
public interface IXMLMultistageReader
......
......@@ -117,6 +117,7 @@
<Compile Include="Integration\Declaration\TestMaxMassInMUCycle.cs" />
<Compile Include="Integration\DualFuel\DualFuelTests.cs" />
<Compile Include="Integration\Hybrid\ParallelHybridTest.cs" />
<Compile Include="Integration\Multistage\MultistageVehicleTest.cs" />
<Compile Include="Integration\VTP\VTPTest.cs" />
<Compile Include="Integration\FuelTypesTest.cs" />
<Compile Include="Integration\FullCycleDeclarationTest.cs">
......@@ -231,6 +232,7 @@
<Compile Include="XML\XMLDeclarationReaderVersionsTest.cs" />
<Compile Include="XML\XMLEngineeringInputRefTest.cs" />
<Compile Include="XML\XMLEngineeringInputSingleTest.cs" />
<Compile Include="XML\XMLMultistageBusConsolidatedInputDataTest.cs" />
<Compile Include="XML\XMLMultistageBusDataTest.cs" />
<Compile Include="XML\XMLMultistageBusInputDataTest.cs" />
<Compile Include="XML\XMLPrimaryBusInputDataTest.cs" />
......@@ -4290,6 +4292,7 @@
</ItemGroup>
<ItemGroup>
<Folder Include="Integration\FullPowertrain\" />
<Folder Include="TestData\Integration\DeclarationMode\MultistageVehicle\" />
</ItemGroup>
<ItemGroup>
<Content Include="TestData\Integration\ADAS\Group5PCCDecl\Tractor_4x2_vehicle-class-5_5_t_0.xml">
......@@ -4675,6 +4678,15 @@
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersion2.8\vecto_vehicle-stage_input_only_mandatory_entries.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_multiple_stages.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_one_stage.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_consolidated_two_stages.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_primary_vehicle_only.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
......
using System;
using System.IO;
using System.Xml;
using Ninject;
using NUnit.Framework;
using TUGraz.VectoCommon.BusAuxiliaries;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCore.InputData.FileIO.XML;
namespace TUGraz.VectoCore.Tests.XML
{
[TestFixture]
public class XMLMultistageBusConsolidatedInputDataTest
{
protected IXMLInputDataReader _xmlInputReader;
private IKernel _kernel;
const string _dirPath = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\";
const string _consolidatedInputData = _dirPath + "vecto_multistage_consolidated_multiple_stages.xml";
const string _primaryOnlyInputData = _dirPath + "vecto_multistage_primary_vehicle_only.xml";
const string _oneStageInputData = _dirPath + "vecto_multistage_consolidated_one_stage.xml";
const string _twoStagesInputData = _dirPath + "vecto_multistage_consolidated_two_stages.xml";
[OneTimeSetUp]
public void RunBeforeAnyTests()
{
Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
_kernel = new StandardKernel(new VectoNinjectModule());
_xmlInputReader = _kernel.Get<IXMLInputDataReader>();
}
[TestCase]
public void TestConsolidateMultistageVehicle()
{
var reader = XmlReader.Create(_consolidatedInputData);
var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
TestConsolidateManufacturingStage(inputDataProvider.JobInputData.ConsolidateManufacturingStage);
Assert.AreEqual(true, inputDataProvider.JobInputData.InputComplete);
}
private void TestConsolidateManufacturingStage(IManufacturingStageInputData consolidateStage)
{
var vehicle = consolidateStage.Vehicle;
Assert.AreEqual("Intermediate Manufacturer 3", vehicle.Manufacturer);
Assert.AreEqual("Intermediate Manufacturer Address 3", vehicle.ManufacturerAddress);
Assert.AreEqual("Intermediate Model 1", vehicle.Model);
Assert.AreEqual("VEH-2234567866", vehicle.VIN);
Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicle.Date);
Assert.AreEqual(LegislativeClass.M3, vehicle.LegislativeClass);
Assert.AreEqual(15000, vehicle.CurbMassChassis.Value());//CorrectedActualMass
Assert.AreEqual(20000, vehicle.GrossVehicleMassRating.Value());//TechnicalPermissibleMaximumLadenMass
Assert.AreEqual(false, vehicle.AirdragModifiedMultistage);
Assert.AreEqual(TankSystem.Liquefied, vehicle.TankSystem);//NgTankSystem
Assert.AreEqual(RegistrationClass.B, vehicle.RegisteredClass);//ClassBus
Assert.AreEqual(10, vehicle.NumberOfPassengersLowerDeck);
Assert.AreEqual(30, vehicle.NumberOfPassengersUpperDeck);
Assert.AreEqual(VehicleCode.CB, vehicle.VehicleCode);
Assert.AreEqual(true, vehicle.LowEntry);
Assert.AreEqual(3, vehicle.Height.Value());//HeightIntegratedBody
Assert.AreEqual(12, vehicle.Length.Value());
Assert.AreEqual(2.5, vehicle.Width.Value());
Assert.AreEqual(2.5, vehicle.EntranceHeight.Value());
Assert.AreEqual(ConsumerTechnology.Mixed, vehicle.DoorDriveTechnology);
Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType);
Assert.AreEqual(true, vehicle.ADAS.EngineStopStart);
Assert.AreEqual(EcoRollType.WithEngineStop, vehicle.ADAS.EcoRoll);
Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, vehicle.ADAS.PredictiveCruiseControl);
Assert.AreEqual(true, vehicle.ADAS.ATEcoRollReleaseLockupClutch);
Assert.AreEqual(null, vehicle.Components.AirdragInputData);
var busAux = vehicle.Components.BusAuxiliaries;
Assert.AreEqual(true, busAux.ElectricConsumers.InteriorLightsLED);
Assert.AreEqual(true, busAux.ElectricConsumers.DayrunninglightsLED);
Assert.AreEqual(false, busAux.ElectricConsumers.PositionlightsLED);
Assert.AreEqual(false, busAux.ElectricConsumers.BrakelightsLED);
Assert.AreEqual(true, busAux.ElectricConsumers.HeadlightsLED);
var busHVACAux = vehicle.Components.BusAuxiliaries.HVACAux;
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(50, busHVACAux.AuxHeaterPower.Value());
Assert.AreEqual(false, busHVACAux.DoubleGlazing);
Assert.AreEqual(true, busHVACAux.AdjustableAuxiliaryHeater);
Assert.AreEqual(false, busHVACAux.SeparateAirDistributionDucts);
Assert.AreEqual(false, busHVACAux.WaterElectricHeater);
Assert.AreEqual(false, busHVACAux.AirElectricHeater);
Assert.AreEqual(true, busHVACAux.OtherHeatingTechnology);
}
[TestCase]
public void TestPrimaryOnlyConsolidateMultistageVehicle()
{
var reader = XmlReader.Create(_primaryOnlyInputData);
var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
Assert.AreEqual(null, inputDataProvider.JobInputData.ConsolidateManufacturingStage);
Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
}
[TestCase]
public void TestOneStageConsolidateMultistageVehicle()
{
var reader = XmlReader.Create(_oneStageInputData);
var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle;
Assert.AreEqual("Intermediate Manufacturer 1", vehicle.Manufacturer);
Assert.AreEqual("Intermediate Manufacturer Address 1", vehicle.ManufacturerAddress);
Assert.AreEqual(null, vehicle.Model);
Assert.AreEqual("VEH-1234567890", vehicle.VIN);
Assert.AreEqual(DateTime.Parse("2018-02-15T11:00:00Z").ToUniversalTime(), vehicle.Date);
Assert.AreEqual(null, vehicle.LegislativeClass);
Assert.AreEqual(null, vehicle.CurbMassChassis);//CorrectedActualMass
Assert.AreEqual(null, vehicle.GrossVehicleMassRating);//TechnicalPermissibleMaximumLadenMass
Assert.AreEqual(null, vehicle.AirdragModifiedMultistage);
Assert.AreEqual(null, vehicle.TankSystem);//NgTankSystem
Assert.AreEqual(null, vehicle.RegisteredClass);//ClassBus
Assert.AreEqual(null, vehicle.NumberOfPassengersLowerDeck);
Assert.AreEqual(null, vehicle.NumberOfPassengersUpperDeck);
Assert.AreEqual(null, vehicle.VehicleCode);
Assert.AreEqual(null, vehicle.LowEntry);
Assert.AreEqual(null, vehicle.Height);//HeightIntegratedBody
Assert.AreEqual(null, vehicle.Length);
Assert.AreEqual(null, vehicle.Width);
Assert.AreEqual(null, vehicle.EntranceHeight);
Assert.AreEqual(null, vehicle.DoorDriveTechnology);
Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType);
Assert.AreEqual(null, vehicle.ADAS);
Assert.AreEqual(null, vehicle.Components);
}
[TestCase]
public void TestTwoStagesConsolidateMultistageVehicle()
{
var reader = XmlReader.Create(_twoStagesInputData);
var inputDataProvider = _xmlInputReader.Create(reader) as IMultistageBusInputDataProvider;
Assert.AreEqual(false, inputDataProvider.JobInputData.InputComplete);
var vehicle = inputDataProvider.JobInputData.ConsolidateManufacturingStage.Vehicle;
Assert.AreEqual("Intermediate Manufacturer 2", vehicle.Manufacturer);
Assert.AreEqual("Intermediate Manufacturer Address 2", vehicle.ManufacturerAddress);
Assert.AreEqual("Intermediate Model 1", vehicle.Model);
Assert.AreEqual("VEH-2234567890", vehicle.VIN);
Assert.AreEqual(DateTime.Parse("2021-02-13T07:20:08.0187663Z").ToUniversalTime(), vehicle.Date);
Assert.AreEqual(null, vehicle.LegislativeClass);
Assert.AreEqual(15000, vehicle.CurbMassChassis.Value());//CorrectedActualMass
Assert.AreEqual(null, vehicle.GrossVehicleMassRating);//TechnicalPermissibleMaximumLadenMass
Assert.AreEqual(false, vehicle.AirdragModifiedMultistage);
Assert.AreEqual(TankSystem.Compressed, vehicle.TankSystem);//NgTankSystem
Assert.AreEqual(null, vehicle.RegisteredClass);//ClassBus
Assert.AreEqual(10, vehicle.NumberOfPassengersLowerDeck);
Assert.AreEqual(30, vehicle.NumberOfPassengersUpperDeck);
Assert.AreEqual(VehicleCode.CB, vehicle.VehicleCode);
Assert.AreEqual(true, vehicle.LowEntry);
Assert.AreEqual(3, vehicle.Height.Value());//HeightIntegratedBody
Assert.AreEqual(12, vehicle.Length.Value());
Assert.AreEqual(2.5, vehicle.Width.Value());
Assert.AreEqual(2.5, vehicle.EntranceHeight.Value());
Assert.AreEqual(ConsumerTechnology.Mixed, vehicle.DoorDriveTechnology);
Assert.AreEqual(VehicleDeclarationType.interim, vehicle.VehicleDeclarationType);
Assert.AreEqual(true, vehicle.ADAS.EngineStopStart);
Assert.AreEqual(EcoRollType.WithEngineStop, vehicle.ADAS.EcoRoll);
Assert.AreEqual(PredictiveCruiseControlType.Option_1_2, vehicle.ADAS.PredictiveCruiseControl);
Assert.AreEqual(null, vehicle.ADAS.ATEcoRollReleaseLockupClutch);
Assert.AreEqual(null, vehicle.Components.AirdragInputData);
var busAux = vehicle.Components.BusAuxiliaries.ElectricConsumers;
Assert.AreEqual(null, busAux);
var busHVACAux = vehicle.Components.BusAuxiliaries.HVACAux;
Assert.AreEqual(null, busHVACAux);
}
}
}
......@@ -10,6 +10,7 @@ using TUGraz.VectoCore.InputData.FileIO.XML;
namespace TUGraz.VectoCore.Tests.XML
{
[TestFixture]
public class XMLMultistageBusInputDataTest
{
protected IXMLInputDataReader xmlInputReader;
......@@ -205,26 +206,10 @@ namespace TUGraz.VectoCore.Tests.XML
Assert.AreEqual(null, vehicle.Components.AirdragInputData);
var electricConsumer = vehicle.Components.BusAuxiliaries.ElectricConsumers;
Assert.AreEqual(null, electricConsumer.InteriorLightsLED);
Assert.AreEqual(null, electricConsumer.DayrunninglightsLED);
Assert.AreEqual(null, electricConsumer.PositionlightsLED);
Assert.AreEqual(null, electricConsumer.BrakelightsLED);
Assert.AreEqual(null, electricConsumer.HeadlightsLED);
Assert.AreEqual(null, electricConsumer);
var hvacAux = vehicle.Components.BusAuxiliaries.HVACAux;
Assert.AreEqual(null, hvacAux.SystemConfiguration);
Assert.AreEqual(null, hvacAux.HeatPumpTypeDriverCompartment);
Assert.AreEqual(null, hvacAux.HeatPumpModeDriverCompartment);
Assert.AreEqual(null, hvacAux.HeatPumpTypePassengerCompartment);
Assert.AreEqual(null, hvacAux.HeatPumpModePassengerCompartment);
Assert.AreEqual(null, hvacAux.AuxHeaterPower);
Assert.AreEqual(null, hvacAux.DoubleGlazing);
Assert.AreEqual(null, hvacAux.AdjustableAuxiliaryHeater);
Assert.AreEqual(null, hvacAux.SeparateAirDistributionDucts);
Assert.AreEqual(null, hvacAux.WaterElectricHeater);
Assert.AreEqual(null, hvacAux.AirElectricHeater);
Assert.AreEqual(null, hvacAux.OtherHeatingTechnology);
Assert.AreEqual(null, hvacAux);
}
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment