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

Skip to content
Snippets Groups Projects
Commit eb18c770 authored by Stefanos DOUMPOULAKIS's avatar Stefanos DOUMPOULAKIS
Browse files

Merge branch 'improve-validation-for-completed' into 'amdm2/develop'

fix #594: validation for aux completed vehicle XML

See merge request vecto/vecto!201
parents e3fd8b0d 29e9395e
No related branches found
No related tags found
No related merge requests found
......@@ -712,7 +712,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
return validAirdragEntries;
}
private bool IsInputDataCompleteExempted(VectoSimulationJobType jobType, bool fullCheck)
private bool IsInputDataCompleteExempted(VectoSimulationJobType jobType, bool fullCheck)
{
if (fullCheck)
{
......@@ -754,7 +754,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
if (fullCheck) {
//use Binary AND to execute all Statements and gather information about missing parameters.
return InputComplete(Model, nameof(Model))
& InputComplete(LegislativeClass, nameof(LegislativeClass))
& InputComplete(LegislativeClass, nameof(LegislativeClass))
& InputComplete(CurbMassChassis, nameof(CurbMassChassis))
& InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating))
& MethodComplete(IsAirdragEntriesValid(), nameof(IsAirdragEntriesValid))
......@@ -777,7 +777,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
}
return InputComplete(Model, nameof(Model))
return InputComplete(Model, nameof(Model))
&& InputComplete(LegislativeClass, nameof(LegislativeClass))
&& InputComplete(CurbMassChassis, nameof(CurbMassChassis))
&& InputComplete(GrossVehicleMassRating, nameof(GrossVehicleMassRating))
......@@ -1173,7 +1173,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
if (fullCheck) {
//use Binary AND to execute all Statements and gather information about missing parameters.
return InputComplete(_consolidateElectricConsumerData, nameof(_consolidateElectricConsumerData))
& _consolidateElectricConsumerData.IsInputDataCompleteFullCheck(jobType)
& ((_consolidateElectricConsumerData != null)
&& _consolidateElectricConsumerData.IsInputDataCompleteFullCheck(jobType))
& InputComplete(_consolidatedHVACBusAuxiliariesData, nameof(_consolidatedHVACBusAuxiliariesData))
& ((_consolidatedHVACBusAuxiliariesData != null)
&& _consolidatedHVACBusAuxiliariesData.IsInputDataCompleteFullCheck(jobType));
......@@ -1201,7 +1202,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl
protected override IList<string> GetInvalidEntriesTemplate(VectoSimulationJobType jobType)
{
return _invalidEntries.Concat(_consolidateElectricConsumerData.GetInvalidEntries(jobType))
return _invalidEntries.Concat(_consolidateElectricConsumerData?.GetInvalidEntries(jobType)
?? new List<string>() { XMLNames.BusAux_ElectricSystem })
.Concat(_consolidatedHVACBusAuxiliariesData?.GetInvalidEntries(jobType) ?? new List<string>()).ToList();
}
......
......@@ -144,6 +144,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
public bool SerializeVectoRunData { get; set; }
public List<string> MissingInputEntries { get; protected set; } = new List<string>();
/// <summary>
/// Only for testing purposes
......@@ -161,6 +162,9 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
bool firstRun = true;
var warning1Hz = false;
if (!_simulate) {
if (MissingInputEntries.Count > 0) {
throw new VectoException(MissingInputEntries.Select(x => $"<{x}> is bad or missing.").Join("\n"));
}
yield break;
}
foreach (var data in RunDataFactory.NextRun()) {
......
using TUGraz.VectoCommon.InputData;
using System.Linq;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCore.InputData;
using TUGraz.VectoCore.InputData.FileIO.XML;
......@@ -101,10 +102,16 @@ namespace TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory
if (dataProvider is IMultistageVIFInputData multistageVifInputData &&
multistageVifInputData.VehicleInputData == null) {
var inputComplete = multistageVifInputData.MultistageJobInputData.JobInputData.InputComplete;
var declType = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage
var declType = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage
?.Vehicle.VehicleDeclarationType;
var final = declType == VehicleDeclarationType.final;
var exempted = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage?
if (final) {
MissingInputEntries = multistageVifInputData.MultistageJobInputData.JobInputData.InvalidEntries
.Distinct().Where(x => !x.StartsWith("_")).ToList();
}
var exempted = multistageVifInputData.MultistageJobInputData.JobInputData.ConsolidateManufacturingStage?
.Vehicle.ExemptedVehicle == true;
if (!((final || exempted) && inputComplete)) {
......
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