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

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

Merge pull request #829 in VECTO/vecto-sim from develop to master

* commit '888d644f':
  update mission profile weighting factors for vehicles of group 16
  adding additional check that the weighting factors of all simulated cycles have to sum up to 1!
  adapting xslt transformation applied before hashing to ignore xsi:type attribute
  adding testcase to show how xsi:type attribute invalidates existing hashes
parents 3d3ecdbe 888d644f
No related branches found
No related tags found
No related merge requests found
......@@ -9,6 +9,7 @@
(although namespace prefixes are considered part of the signature for the purpose of hashing VECTO data
it does not provide additional semantics because the file has to validate against a XSD schema anyways
and may cause troubles when re-creating the VECTO data from database systems)
- ignore xsi:type attributes
- normalize the whitespaces of all attribute values and text nodes
leading and trailing whitespaces are removed
multiple whitespaces are replaced by a single whitespace
......@@ -23,6 +24,7 @@
<xsl:apply-templates select="@*|node()"/>
</xsl:element>
</xsl:template>
<xsl:template match="@xsi:type"/>
<xsl:template match="@*">
<xsl:attribute name="{name()}"><xsl:value-of select="normalize-space(.)"/></xsl:attribute>
</xsl:template>
......
<?xml version="1.0" encoding="utf-8"?>
<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v1.0"
xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0"
xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v1.0 https://webgate.ec.europa.eu/CITnet/svn/VECTO/trunk/Share/XML/XSD/VectoComponent.xsd">
<tns:Engine>
<Data id="ENG-c481b13b8dba4d3682c4" xsi:type="EngineDataDeclarationType">
<Manufacturer>Generic Engine Manufacturer</Manufacturer>
<Model>Generic 40t Long Haul Truck Engine</Model>
<CertificationNumber xsi:type="CertificationNumberType">ENG-gooZah3D</CertificationNumber>
<Date>2017-02-15T11:00:00Z</Date>
<AppVersion>VectoEngine x.y</AppVersion>
<Displacement>12730</Displacement>
<IdlingSpeed>560</IdlingSpeed>
<RatedSpeed>2200</RatedSpeed>
<RatedPower>380000</RatedPower>
<MaxEngineTorque>2300</MaxEngineTorque>
<WHTCUrban>1.0097</WHTCUrban>
<WHTCRural>1.0035</WHTCRural>
<WHTCMotorway>1.0200</WHTCMotorway>
<BFColdHot>1.0000</BFColdHot>
<CFRegPer>1.0000</CFRegPer>
<CFNCV>1.0000</CFNCV>
<FuelType>Diesel CI</FuelType>
<FuelConsumptionMap>
<Entry engineSpeed="560.00" torque="-149.00" fuelConsumption="0.00" />
<Entry engineSpeed="560.00" torque="0.00" fuelConsumption="1256.00" />
<Entry engineSpeed="560.00" torque="200.00" fuelConsumption="3197.00" />
<Entry engineSpeed="560.00" torque="400.00" fuelConsumption="5295.00" />
<Entry engineSpeed="560.00" torque="600.00" fuelConsumption="7615.00" />
<Entry engineSpeed="560.00" torque="800.00" fuelConsumption="9375.00" />
<Entry engineSpeed="560.00" torque="1000.00" fuelConsumption="11239.00" />
<Entry engineSpeed="560.00" torque="1180.00" fuelConsumption="12869.00" />
<Entry engineSpeed="600.00" torque="-148.00" fuelConsumption="0.00" />
<Entry engineSpeed="600.00" torque="0.00" fuelConsumption="1459.00" />
<Entry engineSpeed="600.00" torque="200.00" fuelConsumption="3358.00" />
<Entry engineSpeed="600.00" torque="400.00" fuelConsumption="5498.00" />
<Entry engineSpeed="600.00" torque="600.00" fuelConsumption="8101.00" />
<Entry engineSpeed="600.00" torque="800.00" fuelConsumption="10014.00" />
<Entry engineSpeed="600.00" torque="1000.00" fuelConsumption="12071.00" />
<Entry engineSpeed="600.00" torque="1200.00" fuelConsumption="14201.00" />
<Entry engineSpeed="600.00" torque="1282.00" fuelConsumption="15304.00" />
<Entry engineSpeed="800.00" torque="-149.00" fuelConsumption="0.00" />
<Entry engineSpeed="800.00" torque="0.00" fuelConsumption="1879.00" />
<Entry engineSpeed="800.00" torque="200.00" fuelConsumption="4286.00" />
<Entry engineSpeed="800.00" torque="400.00" fuelConsumption="7021.00" />
<Entry engineSpeed="800.00" torque="600.00" fuelConsumption="10059.00" />
<Entry engineSpeed="800.00" torque="800.00" fuelConsumption="13086.00" />
<Entry engineSpeed="800.00" torque="1000.00" fuelConsumption="16015.00" />
<Entry engineSpeed="800.00" torque="1200.00" fuelConsumption="19239.00" />
<Entry engineSpeed="800.00" torque="1400.00" fuelConsumption="22426.00" />
<Entry engineSpeed="800.00" torque="1600.00" fuelConsumption="25483.00" />
<Entry engineSpeed="800.00" torque="1791.00" fuelConsumption="28905.00" />
<Entry engineSpeed="1000.00" torque="-160.00" fuelConsumption="0.00" />
<Entry engineSpeed="1000.00" torque="0.00" fuelConsumption="2865.00" />
<Entry engineSpeed="1000.00" torque="200.00" fuelConsumption="5963.00" />
<Entry engineSpeed="1000.00" torque="400.00" fuelConsumption="9198.00" />
<Entry engineSpeed="1000.00" torque="600.00" fuelConsumption="12354.00" />
<Entry engineSpeed="1000.00" torque="800.00" fuelConsumption="15965.00" />
<Entry engineSpeed="1000.00" torque="1000.00" fuelConsumption="19864.00" />
<Entry engineSpeed="1000.00" torque="1200.00" fuelConsumption="23530.00" />
<Entry engineSpeed="1000.00" torque="1400.00" fuelConsumption="27202.00" />
<Entry engineSpeed="1000.00" torque="1600.00" fuelConsumption="31165.00" />
<Entry engineSpeed="1000.00" torque="1800.00" fuelConsumption="35103.00" />
<Entry engineSpeed="1000.00" torque="2000.00" fuelConsumption="39360.00" />
<Entry engineSpeed="1000.00" torque="2200.00" fuelConsumption="44120.00" />
<Entry engineSpeed="1000.00" torque="2300.00" fuelConsumption="46836.00" />
<Entry engineSpeed="1200.00" torque="-179.00" fuelConsumption="0.00" />
<Entry engineSpeed="1200.00" torque="0.00" fuelConsumption="3307.00" />
<Entry engineSpeed="1200.00" torque="200.00" fuelConsumption="6897.00" />
<Entry engineSpeed="1200.00" torque="400.00" fuelConsumption="10651.00" />
<Entry engineSpeed="1200.00" torque="600.00" fuelConsumption="14645.00" />
<Entry engineSpeed="1200.00" torque="800.00" fuelConsumption="19115.00" />
<Entry engineSpeed="1200.00" torque="1000.00" fuelConsumption="23677.00" />
<Entry engineSpeed="1200.00" torque="1200.00" fuelConsumption="28180.00" />
<Entry engineSpeed="1200.00" torque="1400.00" fuelConsumption="32431.00" />
<Entry engineSpeed="1200.00" torque="1600.00" fuelConsumption="36698.00" />
<Entry engineSpeed="1200.00" torque="1800.00" fuelConsumption="41691.00" />
<Entry engineSpeed="1200.00" torque="2000.00" fuelConsumption="46915.00" />
<Entry engineSpeed="1200.00" torque="2200.00" fuelConsumption="51783.00" />
<Entry engineSpeed="1200.00" torque="2300.00" fuelConsumption="54932.00" />
<Entry engineSpeed="1400.00" torque="-203.00" fuelConsumption="0.00" />
<Entry engineSpeed="1400.00" torque="0.00" fuelConsumption="4306.00" />
<Entry engineSpeed="1400.00" torque="200.00" fuelConsumption="8143.00" />
<Entry engineSpeed="1400.00" torque="400.00" fuelConsumption="12723.00" />
<Entry engineSpeed="1400.00" torque="600.00" fuelConsumption="17523.00" />
<Entry engineSpeed="1400.00" torque="800.00" fuelConsumption="22288.00" />
<Entry engineSpeed="1400.00" torque="1000.00" fuelConsumption="27093.00" />
<Entry engineSpeed="1400.00" torque="1200.00" fuelConsumption="32536.00" />
<Entry engineSpeed="1400.00" torque="1400.00" fuelConsumption="37746.00" />
<Entry engineSpeed="1400.00" torque="1600.00" fuelConsumption="43194.00" />
<Entry engineSpeed="1400.00" torque="1800.00" fuelConsumption="49453.00" />
<Entry engineSpeed="1400.00" torque="2000.00" fuelConsumption="55830.00" />
<Entry engineSpeed="1400.00" torque="2200.00" fuelConsumption="61072.00" />
<Entry engineSpeed="1400.00" torque="2300.00" fuelConsumption="64377.00" />
<Entry engineSpeed="1600.00" torque="-235.00" fuelConsumption="0.00" />
<Entry engineSpeed="1600.00" torque="0.00" fuelConsumption="5209.00" />
<Entry engineSpeed="1600.00" torque="200.00" fuelConsumption="9669.00" />
<Entry engineSpeed="1600.00" torque="400.00" fuelConsumption="14838.00" />
<Entry engineSpeed="1600.00" torque="600.00" fuelConsumption="20127.00" />
<Entry engineSpeed="1600.00" torque="800.00" fuelConsumption="25894.00" />
<Entry engineSpeed="1600.00" torque="1000.00" fuelConsumption="31631.00" />
<Entry engineSpeed="1600.00" torque="1200.00" fuelConsumption="37248.00" />
<Entry engineSpeed="1600.00" torque="1400.00" fuelConsumption="42826.00" />
<Entry engineSpeed="1600.00" torque="1600.00" fuelConsumption="49752.00" />
<Entry engineSpeed="1600.00" torque="1800.00" fuelConsumption="57020.00" />
<Entry engineSpeed="1600.00" torque="2000.00" fuelConsumption="63914.00" />
<Entry engineSpeed="1600.00" torque="2079.00" fuelConsumption="66520.00" />
<Entry engineSpeed="1800.00" torque="-264.00" fuelConsumption="0.00" />
<Entry engineSpeed="1800.00" torque="0.00" fuelConsumption="6409.00" />
<Entry engineSpeed="1800.00" torque="200.00" fuelConsumption="11777.00" />
<Entry engineSpeed="1800.00" torque="400.00" fuelConsumption="17320.00" />
<Entry engineSpeed="1800.00" torque="600.00" fuelConsumption="23394.00" />
<Entry engineSpeed="1800.00" torque="800.00" fuelConsumption="30501.00" />
<Entry engineSpeed="1800.00" torque="1000.00" fuelConsumption="36378.00" />
<Entry engineSpeed="1800.00" torque="1200.00" fuelConsumption="43079.00" />
<Entry engineSpeed="1800.00" torque="1400.00" fuelConsumption="49796.00" />
<Entry engineSpeed="1800.00" torque="1600.00" fuelConsumption="57436.00" />
<Entry engineSpeed="1800.00" torque="1800.00" fuelConsumption="65157.00" />
<Entry engineSpeed="1800.00" torque="1857.00" fuelConsumption="67574.00" />
<Entry engineSpeed="2000.00" torque="-301.00" fuelConsumption="0.00" />
<Entry engineSpeed="2000.00" torque="0.00" fuelConsumption="9127.00" />
<Entry engineSpeed="2000.00" torque="200.00" fuelConsumption="14822.00" />
<Entry engineSpeed="2000.00" torque="400.00" fuelConsumption="20655.00" />
<Entry engineSpeed="2000.00" torque="600.00" fuelConsumption="27076.00" />
<Entry engineSpeed="2000.00" torque="800.00" fuelConsumption="34188.00" />
<Entry engineSpeed="2000.00" torque="1000.00" fuelConsumption="42837.00" />
<Entry engineSpeed="2000.00" torque="1200.00" fuelConsumption="51018.00" />
<Entry engineSpeed="2000.00" torque="1352.00" fuelConsumption="56618.00" />
<Entry engineSpeed="2100.00" torque="-320.00" fuelConsumption="0.00" />
<Entry engineSpeed="2100.00" torque="0.00" fuelConsumption="10470.00" />
<Entry engineSpeed="2100.00" torque="200.00" fuelConsumption="16332.00" />
<Entry engineSpeed="2100.00" torque="400.00" fuelConsumption="22396.00" />
<Entry engineSpeed="2100.00" torque="600.00" fuelConsumption="28914.00" />
<Entry engineSpeed="2100.00" torque="800.00" fuelConsumption="35717.00" />
<Entry engineSpeed="2100.00" torque="1000.00" fuelConsumption="45643.00" />
<Entry engineSpeed="2100.00" torque="1100.00" fuelConsumption="50653.00" />
</FuelConsumptionMap>
<FullLoadAndDragCurve>
<Entry engineSpeed="560.00" maxTorque="1180.00" dragTorque="-149.00" />
<Entry engineSpeed="600.00" maxTorque="1282.00" dragTorque="-148.00" />
<Entry engineSpeed="800.00" maxTorque="1791.00" dragTorque="-149.00" />
<Entry engineSpeed="1000.00" maxTorque="2300.00" dragTorque="-160.00" />
<Entry engineSpeed="1200.00" maxTorque="2300.00" dragTorque="-179.00" />
<Entry engineSpeed="1400.00" maxTorque="2300.00" dragTorque="-203.00" />
<Entry engineSpeed="1600.00" maxTorque="2079.00" dragTorque="-235.00" />
<Entry engineSpeed="1800.00" maxTorque="1857.00" dragTorque="-264.00" />
<Entry engineSpeed="2000.00" maxTorque="1352.00" dragTorque="-301.00" />
<Entry engineSpeed="2100.00" maxTorque="1100.00" dragTorque="-320.00" />
</FullLoadAndDragCurve>
</Data>
<Signature>
<di:Reference URI="#ENG-c481b13b8dba4d3682c4">
<di:Transforms>
<di:Transform Algorithm="urn:vecto:xml:2017:canonicalization" />
<di:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" />
</di:Transforms>
<di:DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha256" />
<di:DigestValue>bYGqZ5tcExIOHyNkH7HElRegtVqLcqBNzbTEWAKttsc=</di:DigestValue>
</di:Reference>
</Signature>
</tns:Engine>
</tns:VectoInputDeclaration>
\ No newline at end of file
......@@ -514,5 +514,13 @@ namespace VectoHashingTest
Assert.AreEqual("1.0", version);
}
[TestCase(@"Testdata\XML\Validation\vecto_engine_valid.xml"),
TestCase(@"Testdata\XML\Validation\vecto_engine_valid-typeAttr.xml")]
public void TestIgnoreTypeAttribute(string file)
{
var h = VectoHash.Load(file);
Assert.IsTrue(h.ValidateHash());
}
}
}
......@@ -111,6 +111,9 @@
<Content Include="Testdata\XML\Validation\vecto_engine_invalid.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Testdata\XML\Validation\vecto_engine_valid-typeAttr.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Testdata\XML\Validation\vecto_engine_valid.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
......
......@@ -38,6 +38,7 @@ using System.Text;
using System.Xml;
using System.Xml.Linq;
using System.Xml.XPath;
using TUGraz.VectoCommon.Exceptions;
using TUGraz.VectoCommon.InputData;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Resources;
......@@ -198,6 +199,10 @@ namespace TUGraz.VectoCore.OutputData.XML
protected internal override void DoWriteReport()
{
var sumWeightinFactors = Missions.Values.Sum(x => x.ResultEntry.Values.Sum(y => y.WeightingFactor));
if (!sumWeightinFactors.IsEqual(0) || !sumWeightinFactors.IsEqual(1)) {
throw new VectoException("Mission Profile Weighting factors do not sum up to 1!");
}
foreach (var result in Missions.OrderBy(m => m.Key)) {
_manufacturerReport.WriteResult(result.Value);
_customerReport.WriteResult(result.Value);
......
......@@ -13,4 +13,4 @@ Weighting Group , LongHaul , LongHaul EMS , Regional Delivery , Regional Delive
10-LH , 0.27/0.63 , 0/0 , 0.03/0.07 , 0/0 , 0/0 , 0/0 , 0/0
11 , 0/0 , 0/0 , 0.15/0.35 , 0/0 , 0/0 , 0/0 , 0.15/0.35
12 , 0/0 , 0/0 , 0.21/0.49 , 0/0 , 0/0 , 0/0 , 0.09/0.21
16 , 0/0 , 0/0 , 0.15/0.35 , 0/0 , 0/0 , 0/0 , 0.15/0.35
16 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0.30/0.70
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