diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive.xml new file mode 100644 index 0000000000000000000000000000000000000000..f9c91c4285a019e147bb4d17f17dbc26381c25e3 --- /dev/null +++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive.xml @@ -0,0 +1,32 @@ +<?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:Angledrive xsi:type="v2.0:AngledriveComponentDeclarationType"> + <v2.0:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AngledriveDataDeclarationType" id="ANGL-asdf"> + <Manufacturer>Generic Vendor</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>ANGL-1234</CertificationNumber> + <Date>2021-11-18T14:09:17.2810263Z</Date> + <AppVersion>aaaaa</AppVersion> + <Ratio>1.123</Ratio> + <CertificationMethod>Option 1</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00" /> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00" /> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00" /> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00" /> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00" /> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00" /> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ANGL-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>FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </tns:Angledrive> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive_unsorted.xml b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive_unsorted.xml new file mode 100644 index 0000000000000000000000000000000000000000..a86d8cb6f7634878344c9655208d83ec76f46172 --- /dev/null +++ b/VectoCommon/VectoHashingTest/Testdata/XML/Sort/Angledrive_unsorted.xml @@ -0,0 +1,32 @@ +<?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:Angledrive xsi:type="v2.0:AngledriveComponentDeclarationType"> + <v2.0:Data xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xsi:type="AngledriveDataDeclarationType" id="ANGL-asdf"> + <Manufacturer>Generic Vendor</Manufacturer> + <Model>Generic Model</Model> + <CertificationNumber>ANGL-1234</CertificationNumber> + <Date>2021-11-18T14:09:17.2810263Z</Date> + <AppVersion>aaaaa</AppVersion> + <Ratio>1.123</Ratio> + <CertificationMethod>Option 1</CertificationMethod> + <TorqueLossMap> + <Entry inputSpeed="0.00" inputTorque="-10000.00" torqueLoss="100.00" /> + <Entry inputSpeed="1000.00" inputTorque="1000.00" torqueLoss="100.00" /> + <Entry inputSpeed="0.00" inputTorque="10000.00" torqueLoss="100.00" /> + <Entry inputSpeed="0.00" inputTorque="0.00" torqueLoss="10.00" /> + <Entry inputSpeed="1000.00" inputTorque="0.00" torqueLoss="10.00" /> + <Entry inputSpeed="1000.00" inputTorque="-1000.00" torqueLoss="100.00" /> + </TorqueLossMap> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#ANGL-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>FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </tns:Angledrive> +</tns:VectoInputDeclaration> \ No newline at end of file diff --git a/VectoCommon/VectoHashingTest/VectoHashSortTest.cs b/VectoCommon/VectoHashingTest/VectoHashSortTest.cs index 51847360ac6e00e1ec2c1856c14ca9b625337889..bb5fdccd02df70e5ad505a7060c6f31b138d7524 100644 --- a/VectoCommon/VectoHashingTest/VectoHashSortTest.cs +++ b/VectoCommon/VectoHashingTest/VectoHashSortTest.cs @@ -74,7 +74,16 @@ namespace VectoHashingTest Assert.AreEqual(expectedHash, loadedFile.ComputeHash(VectoComponents.TorqueConverter)); } - + + [TestCase("FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=", @"Testdata\XML\Sort\Angledrive.xml"), + TestCase("FGaItzPcx1qGytVlroFp+PU9rzsaQWRWnxmIspkqCRM=", @"Testdata\XML\Sort\Angledrive_unsorted.xml")] + public void TestAngledriveComponentHashSort(string expectedHash, string filePath) + { + var loadedFile = VectoHash.Load(filePath); + Assert.AreEqual(expectedHash, loadedFile.ComputeHash(VectoComponents.Angledrive)); + } + + [TestCase("NiyH2Xp0rQswwXIOf52Jm0wvK4Yc2/PL/T+zQCWQGFo=", @"Testdata\XML\Sort\ADC_unsorted.xml")] public void TestADCHashSort(string expectedHash, string filePath) { diff --git a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj index 432d50c21f9d95b3fd8560ca0e6aaf7774cc23a0..7035b7557b4a7c95ff94deb37e49ee9aef355acd 100644 --- a/VectoCommon/VectoHashingTest/VectoHashingTest.csproj +++ b/VectoCommon/VectoHashingTest/VectoHashingTest.csproj @@ -90,6 +90,12 @@ <Content Include="Testdata\XML\Sort\ADC_unsorted.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content> + <Content Include="Testdata\XML\Sort\Angledrive.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> + <Content Include="Testdata\XML\Sort\Angledrive_unsorted.xml"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </Content> <Content Include="Testdata\XML\Sort\Axlegear.xml"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </Content>