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

Skip to content
Snippets Groups Projects
Commit 02d1d321 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge pull request #649 in VECTO/vecto-sim from...

Merge pull request #649 in VECTO/vecto-sim from ~EMQUARIMA/vecto-sim:feature/VECTO-762-extension-of-input-interfaces to develop

* commit '15f5ca5b':
  updating testcase for fuel types, new testcase for legacy fuel type names
  reading deprecated fuel type names and convert to current fuel type names
  adapting fuel types
parents 1984279e 15f5ca5b
No related branches found
No related tags found
No related merge requests found
......@@ -29,47 +29,50 @@
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using System;
namespace TUGraz.VectoCommon.Models
{
public enum FuelType
{
// ReSharper disable InconsistentNaming
DieselCI,
EthanolCI,
PetrolPI,
EthanolPI,
LPG,
NG,
// ReSharper restore InconsistentNaming
}
public static class FuelTypeHelper
{
public static string GetLabel(this FuelType ftype)
{
switch (ftype) {
case FuelType.DieselCI:
return "Diesel CI";
case FuelType.EthanolCI:
return "Ethanol CI";
case FuelType.PetrolPI:
return "Petrol PI";
case FuelType.EthanolPI:
return "Ethanol PI";
case FuelType.LPG:
return "LPG";
case FuelType.NG:
return "NG";
default:
throw new ArgumentOutOfRangeException("fuel type", ftype, null);
}
}
public static string ToXMLFormat(this FuelType ftype)
{
return ftype.GetLabel();
}
}
using System;
namespace TUGraz.VectoCommon.Models
{
public enum FuelType
{
// ReSharper disable InconsistentNaming
DieselCI,
EthanolCI,
PetrolPI,
EthanolPI,
LPGPI,
NGPI,
NGCI,
// ReSharper restore InconsistentNaming
}
public static class FuelTypeHelper
{
public static string GetLabel(this FuelType ftype)
{
switch (ftype) {
case FuelType.DieselCI:
return "Diesel CI";
case FuelType.EthanolCI:
return "Ethanol CI";
case FuelType.PetrolPI:
return "Petrol PI";
case FuelType.EthanolPI:
return "Ethanol PI";
case FuelType.LPGPI:
return "LPG PI";
case FuelType.NGPI:
return "NG PI";
case FuelType.NGCI:
return "NG CI";
default:
throw new ArgumentOutOfRangeException("fuel type", ftype, null);
}
}
public static string ToXMLFormat(this FuelType ftype)
{
return ftype.GetLabel();
}
}
}
\ No newline at end of file
......@@ -29,6 +29,7 @@
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using System;
using TUGraz.IVT.VectoXML;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
......@@ -61,7 +62,17 @@ namespace TUGraz.VectoCore.InputData.FileIO.XML.Declaration
public FuelType FuelType
{
get { return GetElementValue(XMLNames.Engine_FuelType).ParseEnum<FuelType>(); }
get {
var value = GetElementValue(XMLNames.Engine_FuelType);
if ("LPG".Equals(value, StringComparison.InvariantCultureIgnoreCase)) {
return FuelType.LPGPI;
}
if ("NG".Equals(value, StringComparison.InvariantCultureIgnoreCase)) {
return FuelType.NGPI;
}
return value.ParseEnum<FuelType>();
}
}
public TableData FuelConsumptionMap
......
......@@ -71,6 +71,8 @@ namespace TUGraz.VectoCore.Models.Declaration
{
protected Dictionary<TKey, TValue> Data = new Dictionary<TKey, TValue>();
protected override string ErrorMessage { get { return "key {0} not found in lookup data"; } }
public virtual TValue Lookup(TKey key)
{
try {
......
......@@ -3,5 +3,6 @@ Diesel CI , 836 , 3.13 , 42700
Ethanol CI , 820 , 1.83 , 25700
Petrol PI , 750 , 3.04 , 41500
Ethanol PI , 786 , 2.09 , 29100
LPG , , 3.02 , 46000
NG , , 2.54 , 45100
\ No newline at end of file
LPG PI , , 3.02 , 46000
NG PI , , 2.54 , 45100
NG CI , , 1000 , 100000
\ No newline at end of file
......@@ -1813,9 +1813,9 @@ ToDo: -0.00
<xs:enumeration value="LPG PI"/>
<xs:enumeration value="NG PI"/>
<xs:enumeration value="NG CI"/>
<!-- == LPG PI -->
<!-- == NG PI -->
<!-- dual fuel -->
<!-- LPG == LPG PI -->
<!-- NG== NG PI -->
<!-- NG CI => dual fuel -->
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="GearboxCertificationOptionType">
......
......@@ -114,6 +114,10 @@ namespace TUGraz.VectoCore.Tests.XML
{
var fuelTypes = GetEnumOptions("FuelTypeType", "1.0");
foreach (var fuel in fuelTypes) {
if (!(fuel.EndsWith("CI") || fuel.EndsWith("PI"))) {
// new fuel labels end either with CI or PI, others are for backward compatibility. separate testcase
continue;
}
var reader = XmlReader.Create(SampleVehicleDecl);
var doc = new XmlDocument();
......@@ -1014,6 +1018,40 @@ namespace TUGraz.VectoCore.Tests.XML
Assert.AreEqual(VehicleCategory.RigidTruck, vehCategory);
}
[TestCase(SampleVehicleFullDecl, "LPG", FuelType.LPGPI),
TestCase(SampleVehicleDecl, "NG", FuelType.NGPI)]
public void TestFuelTypesLNGandNGBackwardCompatibility(string file, string value, FuelType expectedFuelType)
{
var reader = XmlReader.Create(file);
var doc = new XmlDocument();
doc.Load(reader);
var nav = doc.CreateNavigator();
var manager = new XmlNamespaceManager(nav.NameTable);
var helper = new XPathHelper(ExecutionMode.Declaration);
helper.AddNamespaces(manager);
var fuelTypeNode = nav.SelectSingleNode(
helper.QueryAbs(
helper.NSPrefix(
XMLNames.VectoInputDeclaration,
Constants.XML.RootNSPrefix),
XMLNames.Component_Vehicle, XMLNames.Vehicle_Components, XMLNames.Component_Engine,
XMLNames.ComponentDataWrapper,
XMLNames.Engine_FuelType),
manager);
fuelTypeNode.SetValue(value);
var modified = XmlReader.Create(new StringReader(nav.OuterXml));
var inputDataProvider = new XMLDeclarationInputDataProvider(modified, true);
var fuelType = inputDataProvider.JobInputData.Vehicle.EngineInputData.FuelType;
Assert.AreEqual(expectedFuelType, fuelType);
}
public static string[] GetEnumOptions(string xmlType, string schemaVersion)
{
Stream resource;
......
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