diff --git a/VectoCommon/VectoCommon/InputData/DigestData.cs b/VectoCommon/VectoCommon/InputData/DigestData.cs index 20f7568d7a66007c1dec334d164d5d48cb9a546d..4de38125894f732fdc51440f8518621cfb0d2fa7 100644 --- a/VectoCommon/VectoCommon/InputData/DigestData.cs +++ b/VectoCommon/VectoCommon/InputData/DigestData.cs @@ -41,8 +41,8 @@ namespace TUGraz.VectoCommon.InputData { public DigestData(XmlNode xmlNode) { - Reference = xmlNode.SelectSingleNode(ReferenceUriAttrXPath)?.InnerXml; - var nodes = xmlNode.SelectNodes(TransformAlgorithmAttrXPath); + Reference = xmlNode?.SelectSingleNode(ReferenceUriAttrXPath)?.InnerXml; + var nodes = xmlNode?.SelectNodes(TransformAlgorithmAttrXPath); var c14n = new List<string>(); if (nodes != null) { for (var i = 0; i < nodes.Count; i++) { @@ -50,8 +50,8 @@ namespace TUGraz.VectoCommon.InputData { } } CanonicalizationMethods = c14n.ToArray(); - DigestMethod = xmlNode.SelectSingleNode(DigestMethodAlgorithmAttrXPath)?.InnerXml; - DigestValue = xmlNode.SelectSingleNode(DigestValueElementXPath)?.InnerXml; + DigestMethod = xmlNode?.SelectSingleNode(DigestMethodAlgorithmAttrXPath)?.InnerXml; + DigestValue = xmlNode?.SelectSingleNode(DigestValueElementXPath)?.InnerXml; } public DigestData(XNode xmlNode) diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs index 7bce4ac8bf3dbee908a981ea0a15fbdface89dd8..5f850e1944d795cca5c052286938ca6c2d70ec43 100644 --- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs +++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONVehicleData.cs @@ -148,7 +148,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON } } - public virtual IList<IAxleEngineeringInputData> Axles + public virtual IList<IAxleEngineeringInputData> AxlesEngineering { get { return AxleWheels().Cast<IAxleEngineeringInputData>().ToList(); } } @@ -553,10 +553,6 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON #endregion - #region Implementation of IAxlesEngineeringInputData - - public IList<IAxleEngineeringInputData> AxlesEngineering { get; } - - #endregion + } } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs index bbea1649bb544ca9f0f89b6b696d8ee0da277fcd..12e8ad9e9a591385abaedc895a1cf5f6bdba16c6 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractCommonComponentType.cs @@ -52,12 +52,12 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { public virtual string CertificationNumber { - get { return "N.A."; } + get { return GetString(XMLNames.Component_CertificationNumber); } } public virtual DigestData DigestValue { - get { return null; } + get { return new DigestData(GetNode(XMLNames.DI_Signature, required:false)); } } } } \ No newline at end of file diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs index 3d41006f8c8e75ee25bd88851cdc005598c8bd9c..1fa555e394a1ae5d08aa94d5e54b645a874a2e55 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/DataProvider/AbstractXMLType.cs @@ -27,6 +27,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { { var node = GetNode(nodeName, required: fallbackValue != null); + if (node == null && fallbackValue == null) { + throw new VectoException("Node {0} not found in input data", nodeName); + } + return node?.InnerText.ToDouble() ?? fallbackValue.Value; } @@ -34,6 +38,10 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.DataProvider { { var node = GetNode(nodePath, required: fallbackValue == null); + if (node == null && fallbackValue == null) { + throw new VectoException("Node {0} not found in input data", string.Join("/", nodePath)); + } + return node?.InnerText.ToDouble() ?? fallbackValue.Value; } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs index b08f7f2570ff498b7444fca784ac25122ef4ce58..a8c6f3afc8fd50dd0e467752e7de166748649a1e 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Declaration/Reader/Impl/XMLComponentReader.cs @@ -53,7 +53,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl public IAirdragDeclarationInputData AirdragInputData { get { - return _airdragInputData ?? (_airdragInputData = CreateComponent(XMLNames.Component_AirDrag, AirdragCreator)); + return _airdragInputData ?? (_airdragInputData = CreateComponent(XMLNames.Component_AirDrag, AirdragCreator, true)); } } @@ -165,6 +165,9 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration.Reader.Impl protected IAirdragDeclarationInputData AirdragCreator(string version, XmlNode componentNode, string sourceFile) { + if (version == null) { + return new XMLDeclarationAirdragDataProviderV10(Vehicle, null, sourceFile); + } return Factory.CreateAirdragData(version, Vehicle, componentNode, sourceFile); } diff --git a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs index 6b5a34cd195ed18ce06b73e1ec98bfdecf7f761a..24d044a6add3d1b65c77225863e8bf22a31b19d7 100644 --- a/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs +++ b/VectoCore/VectoCore/InputData/FileIO/XML/Engineering/XMLEngineeringVehicleDataProvider.cs @@ -50,7 +50,7 @@ using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering { public class XMLEngineeringVehicleDataProvider : AbstractEngineeringXMLComponentDataProvider, - IVehicleEngineeringInputData, IPTOTransmissionInputData, IVehicleComponentsEngineering, IAuxiliariesEngineeringInputData + IVehicleEngineeringInputData, IPTOTransmissionInputData, IVehicleComponentsEngineering, IAxlesEngineeringInputData { protected internal XMLEngineeringAuxiliaryDataProvider XMLEngineeringAuxiliaryData; protected internal XMLEngineeringAxlegearDataProvider AxlegearData; @@ -175,7 +175,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering get { return AxleConfigurationHelper.Parse(GetElementValue(XMLNames.Vehicle_AxleConfiguration)); } } - public IList<IAxleEngineeringInputData> Axles + public IList<IAxleEngineeringInputData> AxlesEngineering { get { return AxleEngineeringInput().Cast<IAxleEngineeringInputData>().ToList(); } } @@ -193,48 +193,53 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering private IEnumerable<AxleInputData> AxleEngineeringInput() { - var axlePath = Helper.Query( - XMLNames.Vehicle_Components, - XMLNames.Component_AxleWheels, - XMLNames.ComponentDataWrapper, - XMLNames.AxleWheels_Axles, - XMLNames.AxleWheels_Axles_Axle); - var axles = - Navigator.Select(Helper.Query(XBasePath, axlePath), Manager); - - var retVal = new AxleInputData[axles.Count]; - - while (axles.MoveNext()) { - var axleNumber = axles.Current.GetAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, "").ToInt(); - if (axleNumber < 1 || axleNumber > retVal.Length) { - throw new VectoException("Axle #{0} exceeds axle count", axleNumber); - } - if (retVal[axleNumber - 1] != null) { - throw new VectoException("Axle #{0} defined multiple times!", axleNumber); - } - var dimension = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_Dimension), Manager); - var rollResistance = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_RRCISO), Manager); - var tyreTestLoad = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_FzISO), Manager); - var weightShare = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_WeightShare), Manager); - var inertia = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_Inertia), Manager); - var axleType = axles.Current.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_AxleType), Manager); - var twinTyres = axles.Current.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_TwinTyres), Manager); - var steered = axles.Current.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_Steered), Manager); - - retVal[axleNumber - 1] = new AxleInputData { - AxleType = axleType == null ? AxleType.VehicleNonDriven : axleType.Value.ParseEnum<AxleType>(), - TwinTyres = twinTyres != null && XmlConvert.ToBoolean(twinTyres.Value), - Steered = steered != null && XmlConvert.ToBoolean(steered.Value), - AxleWeightShare = weightShare == null ? 0 : weightShare.ValueAsDouble, - Tyre = new TyreInputData() { - TyreTestLoad = tyreTestLoad == null ? null : tyreTestLoad.Value.ToDouble().SI<Newton>(), - RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.Value.ToDouble(), - Dimension = dimension == null ? null : dimension.Value, - Inertia = inertia == null ? null : inertia.ValueAsDouble.SI<KilogramSquareMeter>(), + + var axlePath = Helper.Query( + XMLNames.Vehicle_Components, + XMLNames.Component_AxleWheels, + XMLNames.ComponentDataWrapper, + XMLNames.AxleWheels_Axles, + XMLNames.AxleWheels_Axles_Axle); + var axles = + Navigator.Select(Helper.Query(XBasePath, axlePath), Manager); + + var retVal = new AxleInputData[axles.Count]; + + while (axles.MoveNext()) { + var axleNumber = axles.Current.GetAttribute(XMLNames.AxleWheels_Axles_Axle_AxleNumber_Attr, "").ToInt(); + if (axleNumber < 1 || axleNumber > retVal.Length) { + throw new VectoException("Axle #{0} exceeds axle count", axleNumber); } - }; - } - return retVal; + if (retVal[axleNumber - 1] != null) { + throw new VectoException("Axle #{0} defined multiple times!", axleNumber); + } + + var dimension = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_Dimension), Manager); + var rollResistance = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_RRCISO), Manager); + var tyreTestLoad = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_FzISO), Manager); + var weightShare = axles.Current.SelectSingleNode( + Helper.Query(XMLNames.AxleWheels_Axles_Axle_WeightShare), Manager); + var inertia = axles.Current.SelectSingleNode(Helper.Query(XMLNames.AxleWheels_Axles_Axle_Inertia), Manager); + var axleType = axles.Current.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_AxleType), Manager); + var twinTyres = axles.Current.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_TwinTyres), Manager); + var steered = axles.Current.SelectSingleNode(Helper.NSPrefix(XMLNames.AxleWheels_Axles_Axle_Steered), Manager); + + retVal[axleNumber - 1] = new AxleInputData { + AxleType = axleType == null ? AxleType.VehicleNonDriven : axleType.Value.ParseEnum<AxleType>(), + TwinTyres = twinTyres != null && XmlConvert.ToBoolean(twinTyres.Value), + Steered = steered != null && XmlConvert.ToBoolean(steered.Value), + AxleWeightShare = weightShare == null ? 0 : weightShare.ValueAsDouble, + Tyre = new TyreInputData() { + TyreTestLoad = tyreTestLoad == null ? null : tyreTestLoad.Value.ToDouble().SI<Newton>(), + RollResistanceCoefficient = rollResistance == null ? double.NaN : rollResistance.Value.ToDouble(), + Dimension = dimension == null ? null : dimension.Value, + Inertia = inertia == null ? null : inertia.ValueAsDouble.SI<KilogramSquareMeter>(), + } + }; + } + + return retVal; + } public double RetarderRatio @@ -270,18 +275,18 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering IAuxiliariesEngineeringInputData IVehicleComponentsEngineering.AuxiliaryInputData { - get { return this; } + get { return XMLEngineeringAuxiliaryData; } } - public IAuxiliariesEngineeringInputData AuxiliaryInputData() + public IAuxiliariesEngineeringInputData AuxiliaryInputData { - return XMLEngineeringAuxiliaryData; + get { return XMLEngineeringAuxiliaryData; } } public IRetarderInputData RetarderInputData { get; private set; } public IPTOTransmissionInputData PTOTransmissionInputData { get; private set; } - public IAxlesEngineeringInputData AxleWheels { get; } + public IAxlesEngineeringInputData AxleWheels { get { return this; } } public bool VocationalVehicle { get { return false; } } public bool SleeperCab { get { return true; } } public TankSystem? TankSystem { get; } @@ -291,7 +296,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering public bool DualFuelVehicle { get { return false; } } public Watt MaxNetPower1 { get { return null; } } public Watt MaxNetPower2 { get { return null; } } - public IVehicleComponentsDeclaration Components { get; } + public IVehicleComponentsDeclaration Components { get { return null; } } #region "FactoryMethods" @@ -424,13 +429,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Engineering #endregion - #region Implementation of IAuxiliariesEngineeringInputData - - public IList<IAuxiliaryEngineeringInputData> Auxiliaries { get; } - public AuxiliaryModel AuxiliaryAssembly { get; } - public string AuxiliaryVersion { get; } - public string AdvancedAuxiliaryFilePath { get; } + - #endregion } } diff --git a/VectoCore/VectoCore/Utils/XMLDefinitions.cs b/VectoCore/VectoCore/Utils/XMLDefinitions.cs index e4e34a174960d13096b41aaa476cf7f35cecddca..3df538d0cb277efc984b1cfb97cff2dddfcaa631 100644 --- a/VectoCore/VectoCore/Utils/XMLDefinitions.cs +++ b/VectoCore/VectoCore/Utils/XMLDefinitions.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Linq; namespace TUGraz.VectoCore.Utils { @@ -52,55 +53,27 @@ namespace TUGraz.VectoCore.Utils // mapping of document type + version => supported schema files (+version) - private static Dictionary<Tuple<XmlDocumentType, string>, IList<string>> schemaFilenames = new Dictionary<Tuple<XmlDocumentType, string>, IList<string>>(); + //private static Dictionary<Tuple<XmlDocumentType, string>, IList<string>> schemaFilenames = new Dictionary<Tuple<XmlDocumentType, string>, IList<string>>(); - static XMLDefinitions() - { - RegisterKnownXMLSchemas(); - } - - private static void RegisterKnownXMLSchemas() - { - var declarationJob10 = Tuple.Create(XmlDocumentType.DeclarationJobData, "1.0"); - RegisterXMLSchema(declarationJob10, "VectoInput.1.0.xsd"); - - var declarationComponent10 = Tuple.Create(XmlDocumentType.DeclarationComponentData, "1.0"); - RegisterXMLSchema(declarationComponent10, "VectoComponent.1.0.xsd"); - - var engineeringInput07 = Tuple.Create(XmlDocumentType.EngineeringJobData, "0.7"); - RegisterXMLSchema(engineeringInput07, "VectoEngineeringInput.0.7.xsd"); - - var engineeringInput10 = Tuple.Create(XmlDocumentType.EngineeringJobData, "1.0"); - RegisterXMLSchema(engineeringInput10, "VectoEngineeringInput.1.0.xsd"); - RegisterXMLSchema(engineeringInput10, "VectoEngineeringDefinitionsTEST.1.1.xsd"); - - var engineeringComponent10 = Tuple.Create(XmlDocumentType.EngineeringComponentData, "1.0"); - RegisterXMLSchema(engineeringComponent10, "VectoEngineeringInput.1.0.xsd"); + private static Dictionary<XmlDocumentType, Tuple<string, string[]>> schemaFilenames = new Dictionary<XmlDocumentType, Tuple<string, string[]>>() { + {XmlDocumentType.DeclarationJobData, Tuple.Create("VectoInput{0}.xsd", new [] {"1.0"}) }, + {XmlDocumentType.DeclarationComponentData, Tuple.Create("VectoComponent{0}.xsd", new [] {"1.0"}) }, + {XmlDocumentType.EngineeringJobData, Tuple.Create("VectoEngineeringInput{0}.xsd", new [] {"0.7"}) }, + {XmlDocumentType.EngineeringComponentData, Tuple.Create("VectoEngineeringInput{0}.xsd", new [] {"0.7"}) }, + {XmlDocumentType.ManufacturerReport, Tuple.Create("VectoOutputManufacturer{0}.xsd", new [] {"0.4", "0.5", "0.6", "0.7"}) }, + {XmlDocumentType.CustomerReport , Tuple.Create("VectoOutputCustomer{0}.xsd", new [] {"0.4", "0.5", "0.7"})}, + {XmlDocumentType.MonitoringReport , Tuple.Create("VectoMonitoring{0}.xsd", new [] {"0.7"})}, + }; - var manufacturerReport = Tuple.Create(XmlDocumentType.ManufacturerReport, "0.5"); - RegisterXMLSchema(manufacturerReport, String.Format("VectoOutputManufacturer.{0}.xsd", "0.5")); - - var customerReport = Tuple.Create(XmlDocumentType.CustomerReport, "0.5"); - RegisterXMLSchema(customerReport, String.Format("VectoOutputCustomer.{0}.xsd", "0.5")); - - - } - - private static void RegisterXMLSchema(Tuple<XmlDocumentType, string> doctypeversion, string schemafile) - { - if (!schemaFilenames.ContainsKey(doctypeversion)) { - schemaFilenames[doctypeversion] = new List<string>(); - } - schemaFilenames[doctypeversion].Add(schemafile); - } - public static IEnumerable<string> GetSchemaFilenames(XmlDocumentType type, string version) + + public static string GetSchemaFilename(XmlDocumentType type, string version) { - var key = Tuple.Create(type, version); - if (!schemaFilenames.ContainsKey(key)) { - throw new Exception(String.Format("Invalid argument {0} - only use single flags", type)); + if (!schemaFilenames.ContainsKey(type)) { + throw new Exception(string.Format("Invalid argument {0} - only use single flags", type)); } - return schemaFilenames[key]; + var entry = schemaFilenames[type]; + return !entry.Item2.Contains(version) ? null : string.Format(entry.Item1, string.IsNullOrWhiteSpace(version) ? "" : "." + version); } } diff --git a/VectoCore/VectoCore/Utils/XMLValidator.cs b/VectoCore/VectoCore/Utils/XMLValidator.cs index 1abd89f4361e1e35832fc804fbacada933d8c1d1..0e20748ac5a0438138f51f958b476349b3a99ea3 100644 --- a/VectoCore/VectoCore/Utils/XMLValidator.cs +++ b/VectoCore/VectoCore/Utils/XMLValidator.cs @@ -55,24 +55,29 @@ namespace TUGraz.VectoCore.Utils _valid = false; } - public XMLValidator(XmlReader document, Action<bool> resultaction = null, Action<XmlSeverityType, ValidationEvent> validationErrorAction = null):this(resultaction,validationErrorAction) + public XMLValidator( + XmlReader document, Action<bool> resultaction = null, + Action<XmlSeverityType, ValidationEvent> validationErrorAction = null) : this(resultaction, validationErrorAction) { _doc = new XmlDocument(); - _doc.Load(document); + _doc.Load(document); } - public XMLValidator(XmlDocument document, Action<bool> resultaction = null, Action<XmlSeverityType, ValidationEvent> validationErrorAction = null) : this(resultaction, validationErrorAction) + public XMLValidator( + XmlDocument document, Action<bool> resultaction = null, + Action<XmlSeverityType, ValidationEvent> validationErrorAction = null) : this(resultaction, validationErrorAction) { _doc = document; } public bool ValidateXML(XmlDocumentType docType) - { + { _valid = true; if (_doc.DocumentElement == null) { throw new Exception("empty XML document"); } - var version = XMLHelper.GetSchemaVersion(_doc.DocumentElement); + + var version = XMLHelper.GetSchemaVersion(_doc.DocumentElement); _doc.Schemas = GetXMLSchema(docType, version); _doc.Validate(ValidationCallBack); return _valid; @@ -101,20 +106,23 @@ namespace TUGraz.VectoCore.Utils continue; } - var schemaFile = XMLDefinitions.GetSchemaFilenames(entry, version); - foreach (var schema in schemaFile) { - Stream resource; - try { - resource = RessourceHelper.LoadResourceAsStream(RessourceHelper.ResourceType.XMLSchema, schema); - } catch (Exception e) { - throw new Exception( - string.Format("Unknown XML schema! version: {0}, xml document type: {1} ({2})", entry, version, schemaFile), e); - } - - var reader = XmlReader.Create(resource, new XmlReaderSettings(), "schema://"); - xset.Add(XmlSchema.Read(reader, null)); + var schemaFile = XMLDefinitions.GetSchemaFilename(entry, version); + if (schemaFile == null) { + continue; } + + Stream resource; + try { + resource = RessourceHelper.LoadResourceAsStream(RessourceHelper.ResourceType.XMLSchema, schemaFile); + } catch (Exception e) { + throw new Exception( + string.Format("Unknown XML schema! version: {0}, xml document type: {1} ({2})", entry, version, schemaFile), e); + } + + var reader = XmlReader.Create(resource, new XmlReaderSettings(), "schema://"); + xset.Add(XmlSchema.Read(reader, null)); } + xset.Compile(); return xset; } diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj index b65af679a51689c5ce5767e18c739e294b0552b9..9648a934843667d3e34397aa06c0d78c8bc0693a 100644 --- a/VectoCore/VectoCore/VectoCore.csproj +++ b/VectoCore/VectoCore/VectoCore.csproj @@ -176,7 +176,6 @@ <Compile Include="InputData\FileIO\XML\Declaration\Reader\IXMLADASReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Reader\IXMLComponentReader.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLDeclarationInputData.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\AbstractDeclarationXMLComponentDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Factory\IDeclarationInjectFactory.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\Interfaces\IXMLDeclarationVehicleData.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\NinjectModules\XMLDeclarationInputDataV10InjectModule.cs" /> @@ -192,19 +191,10 @@ <Compile Include="InputData\FileIO\XML\Declaration\IXMLDeclarationInputDataReader.cs" /> <Compile Include="InputData\FileIO\XML\IXMLInputDataReader.cs" /> <Compile Include="Utils\Ninject\UseFirstArgumentAsInstanceProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationAirdragDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationAngledriveDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationAuxiliaryDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationAxlegearDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationEngineDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationGearboxDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationJobInputDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\XMLDeclarationReaderInjectModule.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationRetarderDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLDeclarationTorqueConverterDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationVehicleDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Declaration\DataProvider\XMLDeclarationInputDataProvider.cs" /> - <Compile Include="InputData\FileIO\XML\Declaration\Impl\XMLManufacturerReportReader.cs" /> + <Compile Include="InputData\FileIO\XMLReports\XMLManufacturerReportReader.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\AbstractEngineeringXMLComponentDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\XMLEngineeringAirdragDataProvider.cs" /> <Compile Include="InputData\FileIO\XML\Engineering\XMLEngineeringAngledriveDataProvider.cs" /> diff --git a/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs index 869a72a2d16b9e2740f4cb9e7351279c8eec6270..f2e7bd9ba6be3461bf1ced277955ee7c9dc0e4c9 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs @@ -70,7 +70,7 @@ namespace TUGraz.VectoCore.Tests.FileIO //Assert.AreEqual(vehicleInput, savedInprovider.JobInputData.Vehicle); AssertHelper.PublicPropertiesEqual(typeof(IVehicleDeclarationInputData),vehicleInput, savedInprovider.JobInputData.Vehicle, - new [] {"Source", "GearboxInputData", "EngineInputData", "TorqueConverterInputData", "AxleGearInputData"}); + new [] {"Source", "GearboxInputData", "EngineInputData", "TorqueConverterInputData", "AxleGearInputData", "Identifier" }); } diff --git a/VectoCore/VectoCoreTest/Models/Simulation/PowerTrainBuilderTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/PowerTrainBuilderTest.cs index 30af5946d35ef3315e6b81db41ea66cdf2018925..8ce9760e71e2a0da962a843c0dfa5ca3634241d4 100644 --- a/VectoCore/VectoCoreTest/Models/Simulation/PowerTrainBuilderTest.cs +++ b/VectoCore/VectoCoreTest/Models/Simulation/PowerTrainBuilderTest.cs @@ -29,6 +29,7 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ +using System.IO; using System.Linq; using NUnit.Framework; using TUGraz.VectoCommon.Exceptions; @@ -54,6 +55,14 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation public const string JobFileDeclNoAngular = @"TestData\Jobs\40t_Long_Haul_Truck_NoAng.vecto"; public const string JobFileDeclAngEfficiency = @"TestData\Jobs\40t_Long_Haul_Truck with AngleEfficiency.vecto"; + + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + } + [Category("LongRunning")] [TestCase(JobFile, 12), TestCase(JobFileNoAngular, 11),