From f559fc8b18d9d844ede9a2bb0b28a2d2709fd885 Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 18 Jul 2022 16:40:59 +0200 Subject: [PATCH] additional testcases for complete buses and completed buses --- .../Conventional_completedBus_2.xml | 87 ++++++ .../CompletedBus/HEV_completedBus_2.xml | 87 ++++++ .../CompletedBus/IEPC_completedBus_2.xml | 85 ++++++ .../CompletedBus/PEV_completedBus_2.xml | 85 ++++++ .../VectoMockupTest/MockUpVectoTest.cs | 256 ++++++++++++++---- 5 files changed, 550 insertions(+), 50 deletions(-) create mode 100644 VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml create mode 100644 VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml create mode 100644 VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml create mode 100644 VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml new file mode 100644 index 0000000000..50b0b88382 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/Conventional_completedBus_2.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_Conventional_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>final</VehicleDeclarationType> + <ADAS xsi:type="ADAS_Conventional_Type"> + <EngineStopStart>true</EngineStopStart> + <EcoRollWithoutEngineStop>false</EcoRollWithoutEngineStop> + <EcoRollWithEngineStop>false</EcoRollWithEngineStop> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + <APTEcoRollReleaseLockupClutch>true</APTEcoRollReleaseLockupClutch> + </ADAS> + <Components xsi:type="Components_Conventional_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <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>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_Conventional_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>1</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>true</SeparateAirDistributionDucts> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml new file mode 100644 index 0000000000..0a35e5eda6 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/HEV_completedBus_2.xml @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_HEV_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NgTankSystem>Compressed</NgTankSystem><!-- optional --> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <ADAS xsi:type="ADAS_HEV_Type"> + <EngineStopStart>true</EngineStopStart> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_xEV_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <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>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_xEV_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>0</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> + <WaterElectricHeater>false</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml new file mode 100644 index 0000000000..656f9a0048 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/IEPC_completedBus_2.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_IEPC_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <ADAS xsi:type="ADAS_IEPC_Type"> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_xEV_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <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>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_xEV_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>0</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> + <WaterElectricHeater>false</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml new file mode 100644 index 0000000000..b6a025e192 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/XML/XMLReaderDeclaration/SchemaVersion2.4/Distributed/CompletedBus/PEV_completedBus_2.xml @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="utf-8"?> +<tns:VectoInputDeclaration xmlns:tns="urn:tugraz:ivt:VectoAPI:DeclarationInput:v2.0" xmlns="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.4" schemaVersion="2.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:v2.0="urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.0" xmlns:di="http://www.w3.org/2000/09/xmldsig#" xsi:schemaLocation="urn:tugraz:ivt:VectoAPI:DeclarationJob V:\VectoCore\VectoCore\Resources\XSD\VectoDeclarationJob.xsd"> + <v2.0:Vehicle id="VEH-1234567890" xsi:type="Vehicle_PEV_CompletedBusDeclarationType"> + <Manufacturer>Some Manufacturer</Manufacturer> + <ManufacturerAddress>Some Manufacturer Address</ManufacturerAddress> + <VIN>VEH-1234567890</VIN> + <Date>2021-06-30T22:00:00Z</Date> + <Model>Sample Bus Model</Model> + <LegislativeCategory>M3</LegislativeCategory> + <CorrectedActualMass>500</CorrectedActualMass> + <TechnicalPermissibleMaximumLadenMass>3500</TechnicalPermissibleMaximumLadenMass> + <AirdragModifiedMultistep>true</AirdragModifiedMultistep> + <ClassBus>II+III</ClassBus> + <NumberPassengerSeatsLowerDeck>1</NumberPassengerSeatsLowerDeck> + <NumberPassengersStandingLowerDeck>10</NumberPassengersStandingLowerDeck> + <NumberPassengerSeatsUpperDeck>11</NumberPassengerSeatsUpperDeck> + <NumberPassengersStandingUpperDeck>2</NumberPassengersStandingUpperDeck> + <BodyworkCode>CB</BodyworkCode> + <LowEntry>false</LowEntry> + <HeightIntegratedBody>2500</HeightIntegratedBody> + <VehicleLength>9500</VehicleLength> + <VehicleWidth>2500</VehicleWidth> + <EntranceHeight>2000</EntranceHeight> + <DoorDriveTechnology>electric</DoorDriveTechnology> + <VehicleDeclarationType>interim</VehicleDeclarationType> + <ADAS xsi:type="ADAS_PEV_Type"> + <PredictiveCruiseControl>none</PredictiveCruiseControl> + </ADAS> + <Components xsi:type="Components_xEV_CompletedBusType"> + <AirDrag> + <v2.0:Data id="CabinX23h" xsi:type="v2.0:AirDragDataDeclarationType"> + <v2.0:Manufacturer>Generic Manufacturer</v2.0:Manufacturer> + <v2.0:Model>Generic Model</v2.0:Model> + <v2.0:CertificationNumber>e12*0815/8051*2017/05E0000*00</v2.0:CertificationNumber> + <v2.0:Date>2017-03-24T15:00:00Z</v2.0:Date> + <v2.0:AppVersion>Vecto AirDrag x.y</v2.0:AppVersion> + <v2.0:CdxA_0>6.31</v2.0:CdxA_0> + <v2.0:TransferredCdxA>6.32</v2.0:TransferredCdxA> + <v2.0:DeclaredCdxA>6.34</v2.0:DeclaredCdxA> + </v2.0:Data> + <v2.0:Signature> + <di:Reference URI="#CabinX23h"> + <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>NroIsfnT7+1zYG5CTHxpclh0ZaRZvGyrfFPmWdKbFbg=</di:DigestValue> + </di:Reference> + </v2.0:Signature> + </AirDrag> + <Auxiliaries> + <Data xsi:type="AUX_xEV_CompletedBusType"> + <ElectricSystem> + <LEDLights> + <Interiorlights>false</Interiorlights> + <Dayrunninglights>true</Dayrunninglights> + <Positionlights>true</Positionlights> + <Brakelights>true</Brakelights> + <Headlights>false</Headlights> + </LEDLights> + </ElectricSystem> + <HVAC> + <SystemConfiguration>0</SystemConfiguration> + <HeatPumpTypeDriverCompartment> + <Cooling>non R-744 2-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypeDriverCompartment> + <HeatPumpTypePassengerCompartment> + <Cooling>non R-744 3-stage</Cooling> + <Heating>none</Heating> + </HeatPumpTypePassengerCompartment> + <AuxiliaryHeaterPower>50</AuxiliaryHeaterPower> + <DoubleGlazing>false</DoubleGlazing> + <AdjustableAuxiliaryHeater>true</AdjustableAuxiliaryHeater> + <SeparateAirDistributionDucts>false</SeparateAirDistributionDucts> + <WaterElectricHeater>false</WaterElectricHeater> + <AirElectricHeater>false</AirElectricHeater> + <OtherHeatingTechnology>false</OtherHeatingTechnology> + </HVAC> + </Data> + </Auxiliaries> + </Components> + </v2.0:Vehicle> +</tns:VectoInputDeclaration> diff --git a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs index 88f5f92356..168c0e268b 100644 --- a/VectoMockup/VectoMockupTest/MockUpVectoTest.cs +++ b/VectoMockup/VectoMockupTest/MockUpVectoTest.cs @@ -5,6 +5,7 @@ using System.IO; using System.IO.Compression; using System.Xml; using System.Xml.Linq; +using Newtonsoft.Json; using Ninject; using NUnit.Framework; using TUGraz.VectoCommon.Exceptions; @@ -19,7 +20,9 @@ using TUGraz.VectoCore.Models.Simulation.Impl; using TUGraz.VectoCore.Models.Simulation.Impl.SimulatorFactory; using TUGraz.VectoCore.OutputData; using TUGraz.VectoCore.OutputData.FileIO; +using TUGraz.VectoCore.Tests.Utils; using TUGraz.VectoCore.Tests.XML.Reports; +using Formatting = System.Xml.Formatting; using XmlDocumentType = TUGraz.VectoCore.Utils.XmlDocumentType; namespace VectoMockupTest @@ -37,7 +40,7 @@ namespace VectoMockupTest private IKernel _vectoKernel; private ISimulatorFactoryFactory _simFactoryFactory; - private ISimulatorFactory _simulatorFactory; + //private ISimulatorFactory _simulatorFactory; private IXMLInputDataReader _inputDataReader; #region Lorry Testfiles @@ -69,6 +72,16 @@ namespace VectoMockupTest protected const string PEV_E4_PrimaryBus = BasePath + @"PrimaryBus\PEV_primaryBus_E4.xml"; protected const string PEV_IEPC_PrimaryBus = BasePath + @"PrimaryBus\IEPC_primaryBus.xml"; + #endregion + + #region Complete(d) Bus Input + + protected const string Conventional_CompletedBusInput = BasePath + @"CompletedBus\Conventional_completedBus_2.xml"; + protected const string HEV_CompletedBusInput = BasePath + @"CompletedBus\HEV_completedBus_2.xml"; + protected const string PEV_CompletedBusInput = BasePath + @"CompletedBus\PEV_completedBus_2.xml"; + protected const string PEV_IEPC_CompletedBusInput = BasePath + @"CompletedBus\IEPC_completedBus_2.xml"; + + #endregion #region interim bus @@ -78,20 +91,20 @@ namespace VectoMockupTest protected const string Conventional_StageInput = @"TestData\XML\XMLReaderDeclaration\SchemaVersion2.4\vecto_vehicle-stage_input_full-sample.xml"; - #endregion +#endregion - #region completed bus +#region completed bus protected const string Conventional_CompletedBus = @"TestData\XML\XMLReaderDeclaration\SchemaVersionMultistage.0.1\vecto_multistage_conventional_final_vif.VIF_Report_1.xml"; - #endregion +#endregion - #region special cases multistage +#region special cases multistage private const string TestDataDir = "TestData\\"; - private const string CompletedDiesel = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional.vecto"; - private const string CompletedExempted = TestDataDir + "Integration\\Multistage\\newVifExempted.vecto"; - private const string CompletedExemptedWithoutTPMLM = TestDataDir + "Integration\\Multistage\\newVifExempted-noTPMLM.vecto"; + private const string CompleteDiesel = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional.vecto"; + private const string CompleteExempted = TestDataDir + "Integration\\Multistage\\newVifExempted.vecto"; + private const string CompleteExemptedWithoutTPMLM = TestDataDir + "Integration\\Multistage\\newVifExempted-noTPMLM.vecto"; private string CompletedWithoutADAS = TestDataDir + "Integration\\Multistage\\newVifCompletedConventional-noADAS.vecto"; @@ -101,15 +114,15 @@ namespace VectoMockupTest private const string InterimDiesel = TestDataDir + "Integration\\Multistage\\newVifInterimDiesel.vecto"; - #endregion +#endregion - #region GroupTest +#region GroupTest private const string GroupTestDir = @"TestData\XML\XMLReaderDeclaration\GroupTest\"; - #endregion +#endregion @@ -192,7 +205,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -222,7 +235,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); Clearfiles(fileWriter); //remove files from previous test runs @@ -249,7 +262,7 @@ namespace VectoMockupTest var inputData = new XMLDeclarationVIFInputData(multistageBusInput, stageInput.JobInputData.Vehicle); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputData, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -275,7 +288,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -284,16 +297,16 @@ namespace VectoMockupTest CheckFileExists(fileWriter, checkCif: true, checkVif: false); } - [TestCase(CompletedDiesel, TestName="CompletedDiesel")] - [TestCase(CompletedExempted, TestName = "CompleteExempted Bus")] - [TestCase(CompletedExemptedWithoutTPMLM, TestName = "CompletedExempted No TPMLM")] + [TestCase(CompleteDiesel, TestName="CompleteDiesel")] + [TestCase(CompleteExempted, TestName = "CompleteExempted Bus")] + [TestCase(CompleteExemptedWithoutTPMLM, TestName = "CompleteExempted No TPMLM")] public void PrimaryAndCompletedTest(string fileName) { var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, fileName); var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var input = JSONInputDataFactory.ReadJsonJob(fileName); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -302,6 +315,7 @@ namespace VectoMockupTest CheckFileExists(fileWriter, checkCif: true, checkVif: true, checkMrf: true, checkPrimaryMrf: true); } + [TestCase(InterimDiesel, TestName = "PrimaryAndInterim")] public void PrimaryAndInterim(string fileName) { @@ -310,7 +324,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); var input = JSONInputDataFactory.ReadJsonJob(fileName); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, input, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -322,10 +336,149 @@ namespace VectoMockupTest } + [TestCase(Conventional_PrimaryBus_Tyres, Conventional_CompletedBusInput, TestName = "Complete Conventional Bus Different Tyres")] + [TestCase(HEV_IEPC_S_PrimaryBus, HEV_CompletedBusInput, TestName = "Complete HEV_IEPC_S_PrimaryBus")] + [TestCase(HEV_Px_IHPC_PrimaryBus, HEV_CompletedBusInput, TestName = "Complete HEV_Px_PrimaryBus")] + [TestCase(HEV_S2_PrimaryBus, HEV_CompletedBusInput, TestName = "Complete HEV_S2_PrimaryBus")] + [TestCase(HEV_S3_PrimaryBus, HEV_CompletedBusInput, TestName = "Complete HEV_S3_PrimaryBus")] + [TestCase(HEV_S4_PrimaryBus, HEV_CompletedBusInput, TestName = "Complete HEV_S4_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus, PEV_CompletedBusInput, TestName = "Complete PEV_E2_PrimaryBus")] + [TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, TestName = "Complete PEV_E3_PrimaryBus")] + [TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, TestName = "Complete PEV_E4_PrimaryBus")] + [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, TestName = "Complete PEV_IEPC_PrimaryBus")] + public void CompleteTest(string primaryBusInput, string completeBusInput) + { + // complete: primary input + complete input (full) => MRF Primary, VIF (step 1), MRF Complete, CIF Complete + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + + var completeJob = GenerateJsonJobCompleteBus(primaryBusInput, completeBusInput, TestContext.CurrentContext.Test.Name); + var completeBusinput = JSONInputDataFactory.ReadJsonJob(completeJob); + var completeFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput); + var completeSumWriter = new SummaryDataContainer(completeFileWriter); + var completeJobContainer = new JobContainer(completeSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, completeBusinput, completeFileWriter, null, null, true); + + Clearfiles(completeFileWriter); //remove files from previous test runs + completeJobContainer.AddRuns(completedSimulatorFactory); + completeJobContainer.Execute(false); + completeJobContainer.WaitFinished(); + + // assertions + + CheckFileExists(completeFileWriter, checkPrimaryMrf: true, checkVif: true, checkCif: true, checkMrf: true); + } + + + + [TestCase(Conventional_PrimaryBus_Tyres, Conventional_CompletedBusInput, TestName = "Completed Conventional Bus Different Tyres")] + [TestCase(HEV_IEPC_S_PrimaryBus, HEV_CompletedBusInput, TestName = "Completed HEV_IEPC_S_PrimaryBus")] + [TestCase(HEV_Px_IHPC_PrimaryBus, HEV_CompletedBusInput, TestName = "Completed HEV_Px_PrimaryBus")] + [TestCase(HEV_S2_PrimaryBus, HEV_CompletedBusInput, TestName = "Completed HEV_S2_PrimaryBus")] + [TestCase(HEV_S3_PrimaryBus, HEV_CompletedBusInput, TestName = "Completed HEV_S3_PrimaryBus")] + [TestCase(HEV_S4_PrimaryBus, HEV_CompletedBusInput, TestName = "Completed HEV_S4_PrimaryBus")] + [TestCase(PEV_E2_PrimaryBus, PEV_CompletedBusInput, TestName = "Completed PEV_E2_PrimaryBus")] + [TestCase(PEV_E3_PrimaryBus, PEV_CompletedBusInput, TestName = "Completed PEV_E3_PrimaryBus")] + [TestCase(PEV_E4_PrimaryBus, PEV_CompletedBusInput, TestName = "Completed PEV_E4_PrimaryBus")] + [TestCase(PEV_IEPC_PrimaryBus, PEV_IEPC_CompletedBusInput, TestName = "Completed PEV_IEPC_PrimaryBus")] + public void CompletedTest(string primaryBusInput, string completeBusInput) + { + // completed: VIF + complete input (full) => VIF , MRF Completed, CIF Completed + // (approach: first simulate primary on its own to have an up-to-date VIF + // (no need to maintain this in the testfiles) + + // setting up testcase + // run primary simulation + var inputProvider = _inputDataReader.Create(primaryBusInput); + var fileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, primaryBusInput); + var sumWriter = new SummaryDataContainer(fileWriter); + var jobContainer = new JobContainer(sumWriter); + + var _simulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); + + Clearfiles(fileWriter); //remove files from previous test runs + jobContainer.AddRuns(_simulatorFactory); + jobContainer.Execute(false); + jobContainer.WaitFinished(); + + CheckFileExists(fileWriter, checkCif: false, checkPrimaryReport: true, checkMrf: true); + File.Delete(fileWriter.XMLFullReportName); + + // done preparing testcase... + + // this is the actual test: run completed simulation + + var completedJob = GenerateJsonJobCompletedBus(fileWriter.XMLPrimaryVehicleReportName, completeBusInput, TestContext.CurrentContext.Test.Name); + var completedInputData = CompletedVIF.CreateCompletedVif( + JSONInputDataFactory.ReadJsonJob(completedJob) as JSONInputDataCompletedBusFactorMethodV7, + _inputDataReader); + var completedFileWriter = GetOutputFileWriter(TestContext.CurrentContext.Test.Name, completeBusInput); + var completedSumWriter = new SummaryDataContainer(completedFileWriter); + var completedJobContainer = new JobContainer(completedSumWriter); + + var completedSimulatorFactory = + _simFactoryFactory.Factory(ExecutionMode.Declaration, completedInputData, completedFileWriter, null, null, true); + + Clearfiles(completedFileWriter); //remove files from previous test runs + completedJobContainer.AddRuns(completedSimulatorFactory); + completedJobContainer.Execute(false); + completedJobContainer.WaitFinished(); + + // assertions + + CheckFileExists(completedFileWriter, checkCif: true, checkMrf: true, checkVif:true); + + + } + + private string GenerateJsonJobCompletedBus(string vif, string completeBusInput, string subDirectory) + { + var header = new Dictionary<string, object>() { + { "FileVersion", 7 } + }; + var body = new Dictionary<string, object>() { + { "PrimaryVehicleResults", vif }, + { "CompletedVehicle", Path.GetFullPath(completeBusInput) } + }; + var json = new Dictionary<string, object>() { + {"Header", header}, + {"Body", body} + }; + subDirectory = Path.Combine("MockupReports", subDirectory); + Directory.CreateDirectory(Path.GetFullPath(subDirectory)); + var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), "completedJob.vecto"); + var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(path, str); + return path; + } + private string GenerateJsonJobCompleteBus(string primaryBusInput, string completeBusInput, string subDirectory) + { + var header = new Dictionary<string, object>() { + { "FileVersion", 10 } + }; + var body = new Dictionary<string, object>() { + { "PrimaryVehicle", Path.GetFullPath(primaryBusInput) }, + { "InterimStep", Path.GetFullPath(completeBusInput) } + }; + var json = new Dictionary<string, object>() { + {"Header", header}, + {"Body", body} + }; + subDirectory = Path.Combine("MockupReports", subDirectory); + Directory.CreateDirectory(Path.GetFullPath(subDirectory)); + var path = Path.Combine(Path.Combine(Path.GetFullPath(subDirectory)), "completeJob.vecto"); + var str = JsonConvert.SerializeObject(json, Newtonsoft.Json.Formatting.Indented); + File.WriteAllText(path, str); + return path; + } private static void CheckFileExists(FileOutputWriter fileWriter, bool checkMrf = true, @@ -334,57 +487,60 @@ namespace VectoMockupTest bool checkPrimaryMrf = false, bool checkPrimaryReport = false) { + var fail = false; if (checkCif) { - if (!File.Exists(fileWriter.XMLCustomerReportName)) { + if (File.Exists(fileWriter.XMLCustomerReportName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLCustomerReportName), + XmlDocumentType.CustomerReport); + } else { TestContext.WriteLine(fileWriter.XMLCustomerReportName + " Missing\n"); - Assert.Fail(); + fail = true; } - - MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLCustomerReportName), - XmlDocumentType.CustomerReport); } if (checkMrf) { - if (!File.Exists(fileWriter.XMLFullReportName)) { + if (File.Exists(fileWriter.XMLFullReportName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLFullReportName), + XmlDocumentType.ManufacturerReport); + } else { TestContext.WriteLine(fileWriter.XMLFullReportName + " Missing\n"); - Assert.Fail(); + fail = true; } - - MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLFullReportName), - XmlDocumentType.ManufacturerReport); } var primaryMrfPath = fileWriter.XMLFullReportName.Replace("RSLT_MANUFACTURER", "RSLT_MANUFACTURER_PRIMARY"); if (checkPrimaryMrf) { - if (!File.Exists(primaryMrfPath)) { + if (File.Exists(primaryMrfPath)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(primaryMrfPath), XmlDocumentType.ManufacturerReport); + } else { TestContext.WriteLine(primaryMrfPath + " Missing\n"); - Assert.Fail(); + fail = true; } - - MRF_CIF_WriterTestBase.Validate(XDocument.Load(primaryMrfPath), XmlDocumentType.ManufacturerReport); } if (checkPrimaryReport) { - if (!File.Exists(fileWriter.XMLPrimaryVehicleReportName)) { + if (File.Exists(fileWriter.XMLPrimaryVehicleReportName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), + XmlDocumentType.MultistepOutputData); + } else { TestContext.WriteLine(fileWriter.XMLPrimaryVehicleReportName + " Missing\n"); - Assert.Fail(); + fail = true; } - - MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLPrimaryVehicleReportName), - XmlDocumentType.MultistepOutputData); } - if (checkVif) { - if (!File.Exists(fileWriter.XMLMultistageReportFileName)) { + if (File.Exists(fileWriter.XMLMultistageReportFileName)) { + MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLMultistageReportFileName), + XmlDocumentType.MultistepOutputData); + } else { TestContext.WriteLine(fileWriter.XMLMultistageReportFileName + " Missing\n"); - Assert.Fail(); + fail = true; } - - MRF_CIF_WriterTestBase.Validate(XDocument.Load(fileWriter.XMLMultistageReportFileName), - XmlDocumentType.MultistepOutputData); } + if (fail) { + Assert.Fail(); + } } @@ -405,7 +561,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -434,7 +590,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -463,7 +619,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); @@ -489,7 +645,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = null!; + ISimulatorFactory _simulatorFactory = null!; Assert.Throws(typeof(VectoException), () => { _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); @@ -553,7 +709,7 @@ namespace VectoMockupTest var sumWriter = new SummaryDataContainer(fileWriter); var jobContainer = new JobContainer(sumWriter); - _simulatorFactory = + var _simulatorFactory = _simFactoryFactory.Factory(ExecutionMode.Declaration, inputProvider, fileWriter, null, null, true); Clearfiles(fileWriter); jobContainer.AddRuns(_simulatorFactory); -- GitLab