From 4bab7194a05aca1345b2edf1320d07d63ce9d239 Mon Sep 17 00:00:00 2001
From: "VKMTHD\\franzjosefkober" <franz.josef.kober@ivt.tugraz.at>
Date: Mon, 7 Feb 2022 10:48:47 +0100
Subject: [PATCH] hash sort test files and order restructured and missing
 sorted test files added

---
 .../XML/Sort/Component/Sorted/ADC.xml         |  36 +++
 .../{ => Component/Sorted}/Angledrive.xml     |   0
 .../Sort/{ => Component/Sorted}/Axlegear.xml  |   0
 .../Sort/Component/Sorted/BatterySystem_1.xml |  40 ++++
 .../Sorted}/CapacitorSystem_1.xml             |   0
 .../Sorted/ElectricMachineSystem-IHPC_1.xml   |  84 +++++++
 .../Sorted/ElectricMachineSystem_1.xml        |  72 ++++++
 .../ElectricMachineSystem_StdValues.xml       |  49 +++++
 .../Sort/{ => Component/Sorted}/Engine.xml    |   0
 .../Sort/Component/Sorted/Gearbox_APT-N.xml   |  71 ++++++
 .../{ => Component/Sorted}/Gearbox_FWD.xml    |   0
 .../Sort/Component/Sorted/Gearbox_IHPC.xml    | 206 ++++++++++++++++++
 .../XML/Sort/Component/Sorted/IEPC_1.xml      |  96 ++++++++
 .../Sort/Component/Sorted/IEPC_StdValues.xml  |  58 +++++
 .../Sort/{ => Component/Sorted}/Retarder.xml  |   0
 .../Sorted}/TorqueConverter.xml               |   0
 .../Unsorted/ADC.xml}                         |   0
 .../Unsorted/Angledrive.xml}                  |   0
 .../Unsorted/Axlegear.xml}                    |   0
 .../Unsorted/BatterySystem_1.xml}             |   0
 .../Component/Unsorted/CapacitorSystem_1.xml  |  30 +++
 .../ElectricMachineSystem-IHPC_1.xml}         |   0
 .../Unsorted/ElectricMachineSystem_1.xml}     |   0
 .../ElectricMachineSystem_StdValues.xml}      |   0
 .../Unsorted/Engine.xml}                      |   0
 .../Unsorted/Gearbox_APT-N.xml}               |   0
 .../Unsorted/Gearbox_FWD.xml}                 |   0
 .../Unsorted/Gearbox_IHPC.xml}                |   0
 .../Unsorted/IEPC_1.xml}                      |   0
 .../Unsorted/IEPC_StdValues.xml}              |   0
 .../Unsorted/Retarder.xml}                    |   0
 .../Unsorted/TorqueConverter.xml}             |   0
 .../VectoHashingTest/VectoHashSortTest.cs     |  64 +++---
 .../VectoHashingTest/VectoHashingTest.csproj  |  78 +++++--
 34 files changed, 835 insertions(+), 49 deletions(-)
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ADC.xml
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/Angledrive.xml (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/Axlegear.xml (100%)
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/BatterySystem_1.xml
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/CapacitorSystem_1.xml (100%)
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem-IHPC_1.xml
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_1.xml
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_StdValues.xml
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/Engine.xml (100%)
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_APT-N.xml
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/Gearbox_FWD.xml (100%)
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_IHPC.xml
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_1.xml
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_StdValues.xml
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/Retarder.xml (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ => Component/Sorted}/TorqueConverter.xml (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ADC_unsorted.xml => Component/Unsorted/ADC.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Angledrive_unsorted.xml => Component/Unsorted/Angledrive.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Axlegear_unsorted.xml => Component/Unsorted/Axlegear.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{BatterySystem_1_unsorted.xml => Component/Unsorted/BatterySystem_1.xml} (100%)
 create mode 100644 VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/CapacitorSystem_1.xml
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ElectricMachineSystem-IHPC_1_unsorted.xml => Component/Unsorted/ElectricMachineSystem-IHPC_1.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ElectricMachineSystem_1_unsorted.xml => Component/Unsorted/ElectricMachineSystem_1.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{ElectricMachineSystem_StdValues_unsorted.xml => Component/Unsorted/ElectricMachineSystem_StdValues.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Engine_unsorted.xml => Component/Unsorted/Engine.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Gearbox_APT-N_unsorted.xml => Component/Unsorted/Gearbox_APT-N.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Gearbox_FWD_unsorted.xml => Component/Unsorted/Gearbox_FWD.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Gearbox_IHPC_unsorted.xml => Component/Unsorted/Gearbox_IHPC.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{IEPC_1_unsorted.xml => Component/Unsorted/IEPC_1.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{IEPC_StdValues_unsorted.xml => Component/Unsorted/IEPC_StdValues.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{Retarder_unsorted.xml => Component/Unsorted/Retarder.xml} (100%)
 rename VectoCommon/VectoHashingTest/Testdata/XML/Sort/{TorqueConverter_unsorted.xml => Component/Unsorted/TorqueConverter.xml} (100%)

diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ADC.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ADC.xml
new file mode 100644
index 0000000000..93c56ca531
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ADC.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+    <tns:ADC xsi:type="v2.10.1:ADCComponentDeclarationType" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1">
+        <Data xsi:type="v2.10.1:ADCDataDeclarationType" id="ADC-123" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1">
+            <Manufacturer>Generic Vendor</Manufacturer>
+            <Model>ADC 20</Model>
+            <CertificationNumber>ADC-20-CERT</CertificationNumber>
+            <Date>2021-11-18T14:09:17.2810263Z</Date>
+            <AppVersion>VectoCore</AppVersion>
+            <Ratio>0.035</Ratio>
+            <CertificationMethod>Option 1</CertificationMethod>
+            <TorqueLossMap>
+                <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+            </TorqueLossMap>
+        </Data>
+        <v2.10.1:Signature>
+            <di:Reference URI="#ADC-123">
+                <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>NiyH2Xp0rQswwXIOf52Jm0wvK4Yc2/PL/T+zQCWQGFo=</di:DigestValue>
+            </di:Reference>
+        </v2.10.1:Signature>
+    </tns:ADC>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Angledrive.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Angledrive.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Axlegear.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Axlegear.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Axlegear.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Axlegear.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/BatterySystem_1.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/BatterySystem_1.xml
new file mode 100644
index 0000000000..97211aa828
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/BatterySystem_1.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+    <tns:BatterySystem xsi:type="v2.10.1:BatteryComponentDeclarationType">
+        <Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="BatterySystemDataType" id="BAT-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+            <Manufacturer>a</Manufacturer>
+            <Model>a</Model>
+            <CertificationNumber>token</CertificationNumber>
+            <Date>2021-11-18T14:11:51.3452323Z</Date>
+            <AppVersion>aaaaa</AppVersion>
+            <CertificationMethod>Measured</CertificationMethod>
+            <BatteryType>HPBS</BatteryType>
+            <RatedCapacity>72.00</RatedCapacity>
+            <ConnectorsSubsystemsIncluded>true</ConnectorsSubsystemsIncluded>
+            <JunctionboxIncluded>true</JunctionboxIncluded>
+            <TestingTemperature>20</TestingTemperature>
+            <OCV>
+                <Entry SoC="0" OCV="620.00" />
+                <Entry SoC="100" OCV="640.00" />
+            </OCV>
+            <InternalResistance>
+                <Entry SoC="0" R_2="10.00" R_10="11.00" R_20="12.00" />
+                <Entry SoC="100" R_2="12.00" R_10="14.00" R_20="16.00" />
+            </InternalResistance>
+            <CurrentLimits>
+                <Entry SoC="0" maxChargingCurrent="50.00" maxDischargingCurrent="0.00" />
+                <Entry SoC="100" maxChargingCurrent="0.00" maxDischargingCurrent="50.00" />
+            </CurrentLimits>
+        </Data>
+        <v2.10.1:Signature>
+            <di:Reference URI="#BAT-asdf">
+                <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>tam1LGpdznHGFGo+rp0WVr0/6+F2yU2Kv4G4tYvAe+Y=</di:DigestValue>
+            </di:Reference>
+        </v2.10.1:Signature>
+    </tns:BatterySystem>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/CapacitorSystem_1.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/CapacitorSystem_1.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/CapacitorSystem_1.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/CapacitorSystem_1.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem-IHPC_1.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem-IHPC_1.xml
new file mode 100644
index 0000000000..699aa9d06f
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem-IHPC_1.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+    <tns:ElectricMachineSystem xsi:type="v2.10.1:ElectricMachineSystemComponentDeclarationType">
+        <Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="ElectricMachineSystemIHPCMeasuredDataDeclarationType" id="EM-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+            <Manufacturer>a</Manufacturer>
+            <Model>a</Model>
+            <CertificationNumber>token</CertificationNumber>
+            <Date>2021-11-18T14:22:33.399635Z</Date>
+            <AppVersion>aaaaa</AppVersion>
+            <ElectricMachineType>ASM</ElectricMachineType>
+            <CertificationMethod>Measured</CertificationMethod>
+            <R85RatedPower>1</R85RatedPower>
+            <RotationalInertia>0.10</RotationalInertia>
+            <DcDcConverterIncluded>true</DcDcConverterIncluded>
+            <IHPCType>IHPC Type 1</IHPCType>
+            <VoltageLevel>
+                <Voltage>400</Voltage>
+                <ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+                <MaxTorqueCurve>
+                    <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+                    <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+                </MaxTorqueCurve>
+                <PowerMap gear="1">
+                    <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+                    <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+                </PowerMap>
+                <PowerMap gear="2">
+                    <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+                    <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+                </PowerMap>
+            </VoltageLevel>
+            <VoltageLevel>
+                <Voltage>600</Voltage>
+                <ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+                <MaxTorqueCurve>
+                    <Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+                    <Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+                </MaxTorqueCurve>
+                <PowerMap gear="1">
+                    <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+                    <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+                </PowerMap>
+                <PowerMap gear="2">
+                    <Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+                    <Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+                    <Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+                </PowerMap>
+            </VoltageLevel>
+            <DragCurve>
+                <Entry outShaftSpeed="0.00" dragTorque="10.00" />
+                <Entry outShaftSpeed="4000.00" dragTorque="30.00" />
+            </DragCurve>
+            <Conditioning>
+                <Entry coolantTempInlet="30" coolingPower="5000" />
+				<Entry coolantTempInlet="50" coolingPower="5000" />
+            </Conditioning>
+        </Data>
+        <v2.10.1:Signature>
+            <di:Reference URI="#EM-asdf">
+                <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>vvxJmw6PIWC5lHtnDAYVoxy6sF97g24Ti/QDlUq09tc=</di:DigestValue>
+            </di:Reference>
+        </v2.10.1:Signature>
+    </tns:ElectricMachineSystem>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_1.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_1.xml
new file mode 100644
index 0000000000..4dde794845
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_1.xml
@@ -0,0 +1,72 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+	<tns:ElectricMachineSystem xsi:type="v2.10.1:ElectricMachineSystemComponentDeclarationType">
+		<Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="ElectricMachineSystemMeasuredDataDeclarationType" id="EM-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+			<Manufacturer>a</Manufacturer>
+			<Model>a</Model>
+			<CertificationNumber>token</CertificationNumber>
+			<Date>2021-11-18T14:20:11.60244Z</Date>
+			<AppVersion>aaaaa</AppVersion>
+			<ElectricMachineType>ASM</ElectricMachineType>
+			<CertificationMethod>Measured</CertificationMethod>
+			<R85RatedPower>1</R85RatedPower>
+			<RotationalInertia>0.10</RotationalInertia>
+			<DcDcConverterIncluded>true</DcDcConverterIncluded>
+			<IHPCType>None</IHPCType>
+			<VoltageLevel>
+				<Voltage>400</Voltage>
+				<ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+				<MaxTorqueCurve>
+					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+				</MaxTorqueCurve>
+				<PowerMap>
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+			</VoltageLevel>
+			<VoltageLevel>
+				<Voltage>600</Voltage>
+				<ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+				<MaxTorqueCurve>
+					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+				</MaxTorqueCurve>
+				<PowerMap>
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+			</VoltageLevel>
+			<DragCurve>
+				<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+				<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+			</DragCurve>
+			<Conditioning>
+				<Entry coolantTempInlet="30" coolingPower="5000"/>
+				<Entry coolantTempInlet="60" coolingPower="6000"/>
+			</Conditioning>
+		</Data>
+		<v2.10.1:Signature>
+			<di:Reference URI="#EM-asdf">
+				<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>X5dgavua/V/jzBQeJ6SxZXsXm3i1jruL48LedzZ5IxU=</di:DigestValue>
+			</di:Reference>
+		</v2.10.1:Signature>
+	</tns:ElectricMachineSystem>
+</tns:VectoInputDeclaration>
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_StdValues.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_StdValues.xml
new file mode 100644
index 0000000000..436db23720
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/ElectricMachineSystem_StdValues.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+	<tns:ElectricMachineSystem xsi:type="v2.10.1:ElectricMachineSystemComponentDeclarationType">
+		<Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="ElectricMachineSystemStandardValuesDataDeclarationType" id="EM-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+			<Manufacturer>a</Manufacturer>
+			<Model>a</Model>
+			<CertificationNumber>token</CertificationNumber>
+			<Date>2021-11-18T14:21:25.8564983Z</Date>
+			<AppVersion>aaaaa</AppVersion>
+			<ElectricMachineType>ASM</ElectricMachineType>
+			<CertificationMethod>Standard values</CertificationMethod>
+			<R85RatedPower>1</R85RatedPower>
+			<RotationalInertia>0.10</RotationalInertia>
+			<DcDcConverterIncluded>true</DcDcConverterIncluded>
+			<IHPCType>None</IHPCType>
+			<VoltageLevel>
+				<ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+				<MaxTorqueCurve>
+					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+				</MaxTorqueCurve>
+				<PowerMap>
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+			</VoltageLevel>
+			<DragCurve>
+				<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+				<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+			</DragCurve>
+		</Data>
+		<v2.10.1:Signature>
+			<di:Reference URI="#EM-asdf">
+				<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>CunnDxsiE9kciX+v9oeEGADZpEc88NtfMtmrHyJkCQ0=</di:DigestValue>
+			</di:Reference>
+		</v2.10.1:Signature>
+	</tns:ElectricMachineSystem>
+</tns:VectoInputDeclaration>
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Engine.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Engine.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Engine.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Engine.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_APT-N.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_APT-N.xml
new file mode 100644
index 0000000000..04dce1e72e
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_APT-N.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+    <tns:Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+        <v2.0:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="v2.10.1:GearboxDataDeclarationType" id="GBX-asdf">
+            <Manufacturer>Generic Vendor</Manufacturer>
+            <Model>GB_12-gear</Model>
+            <CertificationNumber>GBX-GB_12-gear</CertificationNumber>
+            <Date>2021-11-18T14:23:31.4958567Z</Date>
+            <AppVersion>VectoCore</AppVersion>
+            <TransmissionType>APT-N</TransmissionType>
+            <MainCertificationMethod>Standard values</MainCertificationMethod>
+            <v2.10.1:Gears xsi:type="v2.0:GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+                <Gear number="1">
+                    <Ratio>14.930</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="2">
+                    <Ratio>11.640</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="3">
+                    <Ratio>9.020</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+            </v2.10.1:Gears>
+        </v2.0:Data>
+        <v2.0:Signature>
+            <di:Reference URI="#GBX-asdf">
+                <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>hRzWfx3/El/LwEtP86Utm3dgBAF6CagrpEREsca7+/0=</di:DigestValue>
+            </di:Reference>
+        </v2.0:Signature>
+    </tns:Gearbox>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_FWD.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_FWD.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_FWD.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_FWD.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_IHPC.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_IHPC.xml
new file mode 100644
index 0000000000..3f696ad69a
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Gearbox_IHPC.xml
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.6="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.6" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+    <tns:Gearbox xsi:type="v2.0:GearboxComponentDeclarationType">
+        <v2.0:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="v2.10.1:GearboxDataDeclarationType" id="GBX-asdf">
+            <Manufacturer>Generic Vendor</Manufacturer>
+            <Model>GB_12-gear</Model>
+            <CertificationNumber>GBX-GB_12-gear</CertificationNumber>
+            <Date>2021-11-18T14:30:10.5091769Z</Date>
+            <AppVersion>VectoCore</AppVersion>
+            <TransmissionType>IHPC Type 1</TransmissionType>
+            <MainCertificationMethod>Standard values</MainCertificationMethod>
+            <v2.10.1:Gears xsi:type="v2.0:GearsDeclarationType" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0">
+                <Gear number="1">
+                    <Ratio>14.930</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="2">
+                    <Ratio>11.640</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="3">
+                    <Ratio>9.020</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="4">
+                    <Ratio>7.040</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="5">
+                    <Ratio>5.640</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="6">
+                    <Ratio>4.400</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="7">
+                    <Ratio>3.390</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="8">
+                    <Ratio>2.650</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="9">
+                    <Ratio>2.050</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="10">
+                    <Ratio>1.600</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="11">
+                    <Ratio>1.280</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="125.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="2000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="780.00" torqueLoss="31.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="2000.00" />
+                    </TorqueLossMap>
+                </Gear>
+                <Gear number="12">
+                    <Ratio>1.000</Ratio>
+                    <TorqueLossMap>
+                        <Entry inputSpeed="0.00" inputTorque="-50000.00" torqueLoss="1000.00" />
+                        <Entry inputSpeed="0.00" inputTorque="-250.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="250.00" torqueLoss="5.00" />
+                        <Entry inputSpeed="0.00" inputTorque="50000.00" torqueLoss="1000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-50000.00" torqueLoss="1000.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="-845.00" torqueLoss="17.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="0.00" torqueLoss="17.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="845.00" torqueLoss="17.00" />
+                        <Entry inputSpeed="5000.00" inputTorque="50000.00" torqueLoss="1000.00" />
+                    </TorqueLossMap>
+                </Gear>
+            </v2.10.1:Gears>
+        </v2.0:Data>
+        <v2.0:Signature>
+            <di:Reference URI="#GBX-asdf">
+                <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>XZCluPiG05mOAj5rTjTllCWbhCTEYVxCbE940ck3XsA=</di:DigestValue>
+            </di:Reference>
+        </v2.0:Signature>
+    </tns:Gearbox>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_1.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_1.xml
new file mode 100644
index 0000000000..fc7fd19717
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_1.xml
@@ -0,0 +1,96 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+	<tns:IEPC xsi:type="v2.10.1:IEPCComponentDeclarationType">
+		<Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="IEPCMeasuredDataDeclarationType" id="IEPC-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+			<Manufacturer>a</Manufacturer>
+			<Model>a</Model>
+			<CertificationNumber>token</CertificationNumber>
+			<Date>2021-11-18T14:31:52.4460619Z</Date>
+			<AppVersion>aaaaa</AppVersion>
+			<ElectricMachineType>ASM</ElectricMachineType>
+			<CertificationMethod>Measured for complete component</CertificationMethod>
+			<R85RatedPower>1</R85RatedPower>
+			<RotationalInertia>0.10</RotationalInertia>
+			<DifferentialIncluded>false</DifferentialIncluded>
+			<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
+			<Gears xsi:type="v2.10.1:IEPCGearsDeclarationType">
+				<Gear number="1">
+					<Ratio>3.000</Ratio>
+				</Gear>
+				<Gear number="2">
+					<Ratio>1.000</Ratio>
+					<MaxOutShaftTorque>2000</MaxOutShaftTorque>
+				</Gear>
+			</Gears>
+			<VoltageLevel>
+				<Voltage>400</Voltage>
+				<ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+				<MaxTorqueCurve>
+					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+				</MaxTorqueCurve>
+				<PowerMap gear="1">
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+				<PowerMap gear="2">
+					<Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1500.00"/>
+					<Entry outShaftSpeed="0.00" torque="500.00" electricPower="1500.00"/>
+					<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-25000.00"/>
+					<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="25000.00"/>
+				</PowerMap>
+			</VoltageLevel>
+			<VoltageLevel>
+				<Voltage>600</Voltage>
+				<ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+				<MaxTorqueCurve>
+					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+				</MaxTorqueCurve>
+				<PowerMap gear="1">
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+				<PowerMap gear="2">
+					<Entry outShaftSpeed="0.00" torque="-500.00" electricPower="-1500.00"/>
+					<Entry outShaftSpeed="0.00" torque="500.00" electricPower="1500.00"/>
+					<Entry outShaftSpeed="5000.00" torque="-5000.00" electricPower="-25000.00"/>
+					<Entry outShaftSpeed="5000.00" torque="5000.00" electricPower="25000.00"/>
+				</PowerMap>
+			</VoltageLevel>
+			<DragCurve gear="1">
+				<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+				<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+			</DragCurve>
+			<DragCurve gear="2">
+				<Entry outShaftSpeed="0.00" dragTorque="15.00"/>
+				<Entry outShaftSpeed="4500.00" dragTorque="35.00"/>
+			</DragCurve>
+			<Conditioning>
+				<Entry coolantTempInlet="30" coolingPower="5000"/>
+			</Conditioning>
+		</Data>
+		<v2.10.1:Signature>
+			<di:Reference URI="#IEPC-asdf">
+				<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>3L/fYxKTdIwzADHQMnUBPxcNwZNEHM+sKEC2M32UnEA=</di:DigestValue>
+			</di:Reference>
+		</v2.10.1:Signature>
+	</tns:IEPC>
+</tns:VectoInputDeclaration>
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_StdValues.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_StdValues.xml
new file mode 100644
index 0000000000..d6bf3f3942
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/IEPC_StdValues.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+	<tns:IEPC xsi:type="v2.10.1:IEPCComponentDeclarationType">
+		<Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="IEPCStandardValuesDataDeclarationType" id="IEPC-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+			<Manufacturer>a</Manufacturer>
+			<Model>a</Model>
+			<CertificationNumber>token</CertificationNumber>
+			<Date>2021-11-18T14:33:55.6801441Z</Date>
+			<AppVersion>aaaaa</AppVersion>
+			<ElectricMachineType>ASM</ElectricMachineType>
+			<CertificationMethod>Standard values for all components</CertificationMethod>
+			<R85RatedPower>1</R85RatedPower>
+			<RotationalInertia>0.10</RotationalInertia>
+			<DifferentialIncluded>false</DifferentialIncluded>
+			<DesignTypeWheelMotor>true</DesignTypeWheelMotor>
+			<Gears xsi:type="v2.10.1:IEPCGearsDeclarationType">
+				<Gear number="1">
+					<Ratio>3.000</Ratio>
+				</Gear>
+				<Gear number="2">
+					<Ratio>1.000</Ratio>
+					<MaxOutShaftTorque>2000</MaxOutShaftTorque>
+				</Gear>
+			</Gears>
+			<VoltageLevel>
+				<ContinuousTorque>200.00</ContinuousTorque>
+				<TestSpeedContinuousTorque>2000.00</TestSpeedContinuousTorque>
+				<OverloadTorque>400.00</OverloadTorque>
+				<TestSpeedOverloadTorque>2000.00</TestSpeedOverloadTorque>
+				<OverloadDuration>30.00</OverloadDuration>
+				<MaxTorqueCurve>
+					<Entry outShaftSpeed="0.00" maxTorque="450.00" minTorque="-450.00"/>
+					<Entry outShaftSpeed="4000.00" maxTorque="100.00" minTorque="-100.00"/>
+				</MaxTorqueCurve>
+				<PowerMap>
+					<Entry outShaftSpeed="0.00" torque="-400.00" electricPower="-1000.00"/>
+					<Entry outShaftSpeed="0.00" torque="400.00" electricPower="1000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="-4000.00" electricPower="-20000.00"/>
+					<Entry outShaftSpeed="4000.00" torque="4000.00" electricPower="20000.00"/>
+				</PowerMap>
+			</VoltageLevel>
+			<DragCurve>
+				<Entry outShaftSpeed="0.00" dragTorque="10.00"/>
+				<Entry outShaftSpeed="4000.00" dragTorque="30.00"/>
+			</DragCurve>
+		</Data>
+		<v2.10.1:Signature>
+			<di:Reference URI="#IEPC-asdf">
+				<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>BTHs/Hh2SgycIwU5OSuTgU/2SptMvmRFvPXr2X1Y7XQ=</di:DigestValue>
+			</di:Reference>
+		</v2.10.1:Signature>
+	</tns:IEPC>
+</tns:VectoInputDeclaration>
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Retarder.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Retarder.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Retarder.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/Retarder.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/TorqueConverter.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/TorqueConverter.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/TorqueConverter.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Sorted/TorqueConverter.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/ADC_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ADC.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/ADC_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ADC.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Angledrive.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Angledrive.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Axlegear_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Axlegear.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Axlegear_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Axlegear.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/BatterySystem_1_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/BatterySystem_1.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/BatterySystem_1_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/BatterySystem_1.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/CapacitorSystem_1.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/CapacitorSystem_1.xml
new file mode 100644
index 0000000000..b321bdf540
--- /dev/null
+++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/CapacitorSystem_1.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<tns:VectoInputDeclaration xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.10.1" xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationComponent:v2.10" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:v2.3="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.3" xmlns:v2.10.1="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xmlns:di="http://www.w3.org/2000/09/xmldsig#" schemaVersion="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationComponent v:\VectoCore\VectoCore\Resources\XSD/VectoDeclarationComponent.xsd">
+    <tns:CapacitorSystem xsi:type="v2.10.1:CapacitorSystemComponentDeclarationType">
+        <Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.10.1" xsi:type="CapacitorSystemDataType" id="CAP-asdf" xmlns:v2.9="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:DEV:v2.9">
+            <Manufacturer>a</Manufacturer>
+            <Model>a</Model>
+            <CertificationNumber>token</CertificationNumber>
+            <Date>2021-11-18T14:14:06.0791626Z</Date>
+            <AppVersion>aaaaa</AppVersion>
+            <CertificationMethod>Measured</CertificationMethod>
+            <Capacitance>1.00</Capacitance>
+            <InternalResistance>23.45</InternalResistance>
+            <MinVoltage>3.55</MinVoltage>
+            <MaxVoltage>30.45</MaxVoltage>
+            <MaxChargingCurrent>100.00</MaxChargingCurrent>
+            <MaxDischargingCurrent>99.45</MaxDischargingCurrent>
+            <TestingTemperature>30</TestingTemperature>
+        </Data>
+        <v2.10.1:Signature>
+            <di:Reference URI="#CAP-asdf">
+                <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>dBadIN60l8Iqcanj/nrx1EbD+KixtDxLAusUcutITk8=</di:DigestValue>
+            </di:Reference>
+        </v2.10.1:Signature>
+    </tns:CapacitorSystem>
+</tns:VectoInputDeclaration>
\ No newline at end of file
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/ElectricMachineSystem-IHPC_1_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ElectricMachineSystem-IHPC_1.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/ElectricMachineSystem-IHPC_1_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ElectricMachineSystem-IHPC_1.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/ElectricMachineSystem_1_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ElectricMachineSystem_1.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/ElectricMachineSystem_1_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ElectricMachineSystem_1.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/ElectricMachineSystem_StdValues_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ElectricMachineSystem_StdValues.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/ElectricMachineSystem_StdValues_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/ElectricMachineSystem_StdValues.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Engine_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Engine.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Engine_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Engine.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_APT-N_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Gearbox_APT-N.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_APT-N_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Gearbox_APT-N.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_FWD_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Gearbox_FWD.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_FWD_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Gearbox_FWD.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_IHPC_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Gearbox_IHPC.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Gearbox_IHPC_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Gearbox_IHPC.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/IEPC_1_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/IEPC_1.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/IEPC_1_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/IEPC_1.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/IEPC_StdValues_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/IEPC_StdValues.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/IEPC_StdValues_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/IEPC_StdValues.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Retarder_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Retarder.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/Retarder_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/Retarder.xml
diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/TorqueConverter_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/TorqueConverter.xml
similarity index 100%
rename from VectoCommon/VectoHashingTest/Testdata/XML/Sort/TorqueConverter_unsorted.xml
rename to VectoCommon/VectoHashingTest/Testdata/XML/Sort/Component/Unsorted/TorqueConverter.xml
diff --git a/VectoCommon/VectoHashingTest/VectoHashSortTest.cs b/VectoCommon/VectoHashingTest/VectoHashSortTest.cs
index bb5fdccd02..a87b9df60d 100644
--- a/VectoCommon/VectoHashingTest/VectoHashSortTest.cs
+++ b/VectoCommon/VectoHashingTest/VectoHashSortTest.cs
@@ -8,10 +8,12 @@ using TUGraz.VectoHashing;
 
 namespace VectoHashingTest
 {
-    public class VectoHashSortTest
-    {
-		protected IXMLInputDataReader xmlInputReader;
+	public class VectoHashSortTest
+	{
+		private IXMLInputDataReader xmlInputReader;
 		private IKernel _kernel;
+		private const string UnsortedComponentPath = @"Testdata\XML\Sort\Component\Unsorted\";
+		private const  string SortedComponentPath = @"Testdata\XML\Sort\Component\Sorted\";
 
 		[OneTimeSetUp]
 		public void RunBeforeAnyTests()
@@ -29,8 +31,8 @@ namespace VectoHashingTest
 			var hash = loadedFile.ComputeHash(VectoComponents.Axlegear);
 		}
 
-		[TestCase("ttvMnXYdQrEAu47QEO2AKyfzOdPSlcdsR/MrmH/mX+k=", @"Testdata\XML\Sort\Engine.xml"),
-		TestCase("ttvMnXYdQrEAu47QEO2AKyfzOdPSlcdsR/MrmH/mX+k=", @"Testdata\XML\Sort\Engine_unsorted.xml")]
+		[TestCase("ttvMnXYdQrEAu47QEO2AKyfzOdPSlcdsR/MrmH/mX+k=", SortedComponentPath + "Engine.xml"),
+		TestCase("ttvMnXYdQrEAu47QEO2AKyfzOdPSlcdsR/MrmH/mX+k=",  UnsortedComponentPath + "Engine.xml")]
 		public void TestEngineHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
@@ -38,18 +40,20 @@ namespace VectoHashingTest
 		}
 
 
-		[TestCase("hRzWfx3/El/LwEtP86Utm3dgBAF6CagrpEREsca7+/0=", @"Testdata\XML\Sort\Gearbox_APT-N_unsorted.xml"),
-		TestCase("XZCluPiG05mOAj5rTjTllCWbhCTEYVxCbE940ck3XsA=", @"Testdata\XML\Sort\Gearbox_IHPC_unsorted.xml"),
-		TestCase("LrsR3WfAkFia53dMiwGEIeAiA+9bdWvaS6x7dIL9yiQ=", @"Testdata\XML\Sort\Gearbox_FWD.xml"),
-		TestCase("LrsR3WfAkFia53dMiwGEIeAiA+9bdWvaS6x7dIL9yiQ=", @"Testdata\XML\Sort\Gearbox_FWD_unsorted.xml")]
+		[TestCase("LrsR3WfAkFia53dMiwGEIeAiA+9bdWvaS6x7dIL9yiQ=", SortedComponentPath + "Gearbox_FWD.xml"),
+		 TestCase("LrsR3WfAkFia53dMiwGEIeAiA+9bdWvaS6x7dIL9yiQ=", UnsortedComponentPath + "Gearbox_FWD.xml"),
+		 TestCase("hRzWfx3/El/LwEtP86Utm3dgBAF6CagrpEREsca7+/0=", SortedComponentPath + "Gearbox_APT-N.xml"),
+		 TestCase("hRzWfx3/El/LwEtP86Utm3dgBAF6CagrpEREsca7+/0=", UnsortedComponentPath + "Gearbox_APT-N.xml"),
+		 TestCase("XZCluPiG05mOAj5rTjTllCWbhCTEYVxCbE940ck3XsA=", SortedComponentPath + "Gearbox_IHPC.xml"),
+		 TestCase("XZCluPiG05mOAj5rTjTllCWbhCTEYVxCbE940ck3XsA=", UnsortedComponentPath + "Gearbox_IHPC.xml")]
 		public void TestGearboxComponentHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
 			Assert.AreEqual(expectedHash, loadedFile.ComputeHash(VectoComponents.Gearbox));
 		}
 		
-		[TestCase("og41nROicUT1OoesUTZ9/uoroCUbqlTo7nKmCRYQap4=", @"Testdata\XML\Sort\Axlegear.xml"),
-		TestCase("og41nROicUT1OoesUTZ9/uoroCUbqlTo7nKmCRYQap4=", @"Testdata\XML\Sort\Axlegear_unsorted.xml")]
+		[TestCase("og41nROicUT1OoesUTZ9/uoroCUbqlTo7nKmCRYQap4=", SortedComponentPath + "Axlegear.xml"),
+		TestCase("og41nROicUT1OoesUTZ9/uoroCUbqlTo7nKmCRYQap4=", UnsortedComponentPath + "Axlegear.xml")]
 		public void TestAxlegearComponentHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
@@ -57,8 +61,8 @@ namespace VectoHashingTest
 		}
 
 
-		[TestCase("uMH8HJlAtm/SNaj8QOhuX/cBNXTHAZ1la3oEXI42bls=", @"Testdata\XML\Sort\Retarder.xml"),
-		TestCase("uMH8HJlAtm/SNaj8QOhuX/cBNXTHAZ1la3oEXI42bls=", @"Testdata\XML\Sort\Retarder_unsorted.xml")]
+		[TestCase("uMH8HJlAtm/SNaj8QOhuX/cBNXTHAZ1la3oEXI42bls=", SortedComponentPath + "Retarder.xml"),
+		TestCase("uMH8HJlAtm/SNaj8QOhuX/cBNXTHAZ1la3oEXI42bls=", UnsortedComponentPath + "Retarder.xml")]
 		public void TestRetarderComponentHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
@@ -66,8 +70,8 @@ namespace VectoHashingTest
 		}
 
 
-		[TestCase("o5/ZtRQ8nAui3rhM6adKiHVU9jRync6f1cDlBcnyOg4=", @"Testdata\XML\Sort\TorqueConverter.xml"),
-		TestCase("o5/ZtRQ8nAui3rhM6adKiHVU9jRync6f1cDlBcnyOg4=", @"Testdata\XML\Sort\TorqueConverter_unsorted.xml")]
+		[TestCase("o5/ZtRQ8nAui3rhM6adKiHVU9jRync6f1cDlBcnyOg4=", SortedComponentPath + "TorqueConverter.xml"),
+		TestCase("o5/ZtRQ8nAui3rhM6adKiHVU9jRync6f1cDlBcnyOg4=", UnsortedComponentPath + "TorqueConverter.xml")]
 		public void TestTorqueConverterComponentHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
@@ -75,8 +79,8 @@ namespace VectoHashingTest
 		}
 
 
-		[TestCase("FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=", @"Testdata\XML\Sort\Angledrive.xml"),
-		TestCase("FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=", @"Testdata\XML\Sort\Angledrive_unsorted.xml")]
+		[TestCase("FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=", SortedComponentPath + "Angledrive.xml"),
+		TestCase("FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=", UnsortedComponentPath + "Angledrive.xml")]
 		public void TestAngledriveComponentHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
@@ -84,30 +88,36 @@ namespace VectoHashingTest
 		}
 
 
-		[TestCase("NiyH2Xp0rQswwXIOf52Jm0wvK4Yc2/PL/T+zQCWQGFo=", @"Testdata\XML\Sort\ADC_unsorted.xml")]
+		[TestCase("NiyH2Xp0rQswwXIOf52Jm0wvK4Yc2/PL/T+zQCWQGFo=", SortedComponentPath + "ADC.xml"),
+		 TestCase("NiyH2Xp0rQswwXIOf52Jm0wvK4Yc2/PL/T+zQCWQGFo=", UnsortedComponentPath + "ADC.xml")]
 		public void TestADCHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
 			Assert.AreEqual(expectedHash, loadedFile.ComputeHash(VectoComponents.ADC));
 		}
 
-		[TestCase("tam1LGpdznHGFGo+rp0WVr0/6+F2yU2Kv4G4tYvAe+Y=", @"Testdata\XML\Sort\BatterySystem_1_unsorted.xml")]
+		[TestCase("tam1LGpdznHGFGo+rp0WVr0/6+F2yU2Kv4G4tYvAe+Y=", SortedComponentPath + "BatterySystem_1.xml"),
+		TestCase("tam1LGpdznHGFGo+rp0WVr0/6+F2yU2Kv4G4tYvAe+Y=", UnsortedComponentPath + "BatterySystem_1.xml")]
 		public void TestBatterySystemHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
 			Assert.AreEqual(expectedHash, loadedFile.ComputeHash(VectoComponents.BatterySystem));
 		}
 
-		[TestCase("dBadIN60l8Iqcanj/nrx1EbD+KixtDxLAusUcutITk8=", @"Testdata\XML\Sort\CapacitorSystem_1.xml")]
+		[TestCase("dBadIN60l8Iqcanj/nrx1EbD+KixtDxLAusUcutITk8=", SortedComponentPath + "CapacitorSystem_1.xml"),
+		 TestCase("dBadIN60l8Iqcanj/nrx1EbD+KixtDxLAusUcutITk8=", UnsortedComponentPath + "CapacitorSystem_1.xml")]
 		public void TestCapacitorHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
 			Assert.AreEqual(expectedHash, loadedFile.ComputeHash(VectoComponents.CapacitorSystem));
 		}
-		
-		[TestCase("X5dgavua/V/jzBQeJ6SxZXsXm3i1jruL48LedzZ5IxU=", @"Testdata\XML\Sort\ElectricMachineSystem-IHPC_1_unsorted.xml"),
-		TestCase("wLFLpJxFZ6mDXeqdlZCGVOLCoXTCf7XTL0q9ZKkmt7o=", @"Testdata\XML\Sort\ElectricMachineSystem_1_unsorted.xml"),
-		TestCase("CunnDxsiE9kciX+v9oeEGADZpEc88NtfMtmrHyJkCQ0=", @"Testdata\XML\Sort\ElectricMachineSystem_StdValues_unsorted.xml")]
+
+		[TestCase("X5dgavua/V/jzBQeJ6SxZXsXm3i1jruL48LedzZ5IxU=", SortedComponentPath + "ElectricMachineSystem-IHPC_1.xml"),
+		 TestCase("X5dgavua/V/jzBQeJ6SxZXsXm3i1jruL48LedzZ5IxU=", UnsortedComponentPath + "ElectricMachineSystem-IHPC_1.xml"),
+		 TestCase("wLFLpJxFZ6mDXeqdlZCGVOLCoXTCf7XTL0q9ZKkmt7o=", SortedComponentPath + "ElectricMachineSystem_1.xml"),
+		 TestCase("wLFLpJxFZ6mDXeqdlZCGVOLCoXTCf7XTL0q9ZKkmt7o=", UnsortedComponentPath + "ElectricMachineSystem_1.xml"),
+		 TestCase("CunnDxsiE9kciX+v9oeEGADZpEc88NtfMtmrHyJkCQ0=", SortedComponentPath + "ElectricMachineSystem_StdValues.xml"),
+		 TestCase("CunnDxsiE9kciX+v9oeEGADZpEc88NtfMtmrHyJkCQ0=", UnsortedComponentPath + "ElectricMachineSystem_StdValues.xml")]
 		public void TestElectricMachineHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
@@ -115,8 +125,10 @@ namespace VectoHashingTest
 		}
 
 
-		[TestCase("3L/fYxKTdIwzADHQMnUBPxcNwZNEHM+sKEC2M32UnEA=", @"Testdata\XML\Sort\IEPC_1_unsorted.xml"),
-		TestCase("BTHs/Hh2SgycIwU5OSuTgU/2SptMvmRFvPXr2X1Y7XQ=", @"Testdata\XML\Sort\IEPC_StdValues_unsorted.xml")]
+		[TestCase("3L/fYxKTdIwzADHQMnUBPxcNwZNEHM+sKEC2M32UnEA=", SortedComponentPath + "IEPC_1.xml"),
+		 TestCase("3L/fYxKTdIwzADHQMnUBPxcNwZNEHM+sKEC2M32UnEA=", UnsortedComponentPath + "IEPC_1.xml"),
+		 TestCase("BTHs/Hh2SgycIwU5OSuTgU/2SptMvmRFvPXr2X1Y7XQ=", SortedComponentPath + "IEPC_StdValues.xml"),
+		 TestCase("BTHs/Hh2SgycIwU5OSuTgU/2SptMvmRFvPXr2X1Y7XQ=", UnsortedComponentPath + "IEPC_StdValues.xml")]
 		public void TestIEPCHashSort(string expectedHash, string filePath)
 		{
 			var loadedFile = VectoHash.Load(filePath);
diff --git a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
index 7035b7557b..7a23a60d72 100644
--- a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
+++ b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj
@@ -87,70 +87,100 @@
     <Content Include="Testdata\XML\simple_document.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\ADC_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\ADC.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Angledrive.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\BatterySystem_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Angledrive_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\ElectricMachineSystem-IHPC_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Axlegear.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\ElectricMachineSystem_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Axlegear_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\ElectricMachineSystem_StdValues.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\BatterySystem_1_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Gearbox_APT-N.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\CapacitorSystem_1.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Gearbox_IHPC.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\ElectricMachineSystem-IHPC_1_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\IEPC_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\ElectricMachineSystem_1_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\IEPC_StdValues.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\ElectricMachineSystem_StdValues_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\ADC.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Engine.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Angledrive.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Engine_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Angledrive.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Gearbox_APT-N_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Axlegear.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Gearbox_FWD.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Axlegear.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Gearbox_FWD_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\BatterySystem_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Gearbox_IHPC_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\CapacitorSystem_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\IEPC_1_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\CapacitorSystem_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\IEPC_StdValues_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\ElectricMachineSystem-IHPC_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Retarder.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\ElectricMachineSystem_1.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\Retarder_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\ElectricMachineSystem_StdValues.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\TorqueConverter.xml">
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Engine.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
-    <Content Include="Testdata\XML\Sort\TorqueConverter_unsorted.xml">
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Engine.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Gearbox_APT-N.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Gearbox_FWD.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Gearbox_FWD.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Gearbox_IHPC.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\IEPC_1.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\IEPC_StdValues.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Sorted\Retarder.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\Retarder.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Sorted\TorqueConverter.xml">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </Content>
+    <Content Include="Testdata\XML\Sort\Component\Unsorted\TorqueConverter.xml">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </Content>
     <Content Include="Testdata\XML\ToHash\multiple_components.xml">
@@ -262,7 +292,9 @@
     <None Include="app.config" />
     <None Include="packages.config" />
   </ItemGroup>
-  <ItemGroup />
+  <ItemGroup>
+    <Folder Include="Testdata\XML\Sort\Job\" />
+  </ItemGroup>
   <Choose>
     <When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
       <ItemGroup>
-- 
GitLab