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

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

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

* commit '1d30b55e':
  fix: copy manufacturer data in compbustionEngineData copy-constructor
  adding testcase to check vsum metadata
  adding missing certification options
  reproduce bug in testcase
  pictures for additional vehicle groups, fix: axleweight distribution for undefined vehicle groups
parents 216b27ba 1d30b55e
No related branches found
No related tags found
No related merge requests found
......@@ -42,20 +42,20 @@ Module MainModule
Public Function ConvPicPath(hdVclass As Integer, isLongHaul As Boolean) As Bitmap
Select Case hdVclass
Case 1, 2, 3
Return My.Resources._4x2r ' resourcePath & "4x2r.png"
Case 1, 2, 3, 6, 7
Return My.Resources._4x2r
Case 4
If isLongHaul Then Return My.Resources._4x2rt
Return My.Resources._4x2r 'resourcePath & "4x2r" & longHaulFlag & ".png"
Case 5
Return My.Resources._4x2tt ' resourcePath & "4x2tt.png"
Case 9
Return My.Resources._4x2r
Case 5, 8
Return My.Resources._4x2tt
Case 9, 11, 13
If isLongHaul Then Return My.Resources._6x2rt
Return My.Resources._6x2r ' resourcePath & "6x2r" & longHaulFlag & ".png"
Case 10
Return My.Resources._6x2tt ' resourcePath & "6x2tt.png"
Return My.Resources._6x2r
Case 10, 12, 14
Return My.Resources._6x2tt
Case Else
Return My.Resources.Undef ' resourcePath & "Undef.png"
Return My.Resources.Undef
End Select
End Function
......
......@@ -29,31 +29,40 @@
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using System;
namespace TUGraz.VectoCommon.Models
{
public enum CertificationMethod
{
StandardValues,
Measured,
NotCertified
}
public static class CertificationMethodHelper
{
public static string ToXMLFormat(this CertificationMethod method)
{
switch (method) {
case CertificationMethod.StandardValues:
return "Standard values";
case CertificationMethod.Measured:
return "Measured";
case CertificationMethod.NotCertified:
return "NOT CERTIFIED";
default:
throw new ArgumentOutOfRangeException("CertificationMethod", method, null);
}
}
}
using System;
namespace TUGraz.VectoCommon.Models
{
public enum CertificationMethod
{
StandardValues,
Measured,
Option1,
Option2,
Option3,
NotCertified
}
public static class CertificationMethodHelper
{
public static string ToXMLFormat(this CertificationMethod method)
{
switch (method) {
case CertificationMethod.StandardValues:
return "Standard values";
case CertificationMethod.Measured:
return "Measured";
case CertificationMethod.Option1:
return "Option 1";
case CertificationMethod.Option2:
return "Option 2";
case CertificationMethod.Option3:
return "Option 3";
case CertificationMethod.NotCertified:
return "NOT CERTIFIED";
default:
throw new ArgumentOutOfRangeException("CertificationMethod", method, null);
}
}
}
}
\ No newline at end of file
......@@ -96,7 +96,7 @@ namespace TUGraz.VectoCore.Models.Declaration
VehicleHeight = LookupHeight(vehicleCategory, axleConfiguration, grossVehicleMassRating),
DesignSpeed = row.ParseDouble("designspeed").KMPHtoMeterPerSecond(),
GrossVehicleMassRating = grossVehicleMassRating,
CdADefault = row.ParseDouble("cdxa_default").SI<SquareMeter>(),
CdADefault = string.IsNullOrEmpty(row["cdxa_default"].ToString()) ? null : row.ParseDouble("cdxa_default").SI<SquareMeter>(),
CdAConstruction = string.IsNullOrEmpty(row["cdxa_construction"].ToString())
? null
: row.ParseDouble("cdxa_construction").SI<SquareMeter>(),
......@@ -257,7 +257,7 @@ namespace TUGraz.VectoCore.Models.Declaration
var trailerPayload = trailers.Sum(
t => DeclarationData.GetPayloadForTrailerWeight(t.TrailerGrossVehicleWeight, t.TrailerCurbWeight, lowLoading))
.DefaultIfNull(0);
return vehiclePayload + trailerPayload;
return vehiclePayload + trailerPayload;
}
return refLoadValue.SI<Kilogram>();
}
......@@ -282,9 +282,11 @@ namespace TUGraz.VectoCore.Models.Declaration
private static double[] GetAxleWeightDistribution(DataRow row, MissionType missionType)
{
return
row.Field<string>("truckaxles" + GetMissionSuffix(missionType))
.Split('/').ToDouble().Select(x => x / 100.0).ToArray();
var axleDistribution = row.Field<string>("truckaxles" + GetMissionSuffix(missionType));
if (string.IsNullOrWhiteSpace(axleDistribution)) {
return new double[]{};
}
return axleDistribution.Split('/').ToDouble().Select(x => x / 100.0).ToArray();
}
private static string GetMissionSuffix(MissionType missionType, bool ignoreEMS = false)
......
......@@ -96,7 +96,9 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
public CombustionEngineData Copy()
{
return new CombustionEngineData {
return new CombustionEngineData {
Manufacturer = Manufacturer,
ModelName = ModelName,
Displacement = Displacement,
IdleSpeed = IdleSpeed,
Inertia = Inertia,
......
......@@ -29,131 +29,176 @@
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.Simulation.DataBus;
using TUGraz.VectoCore.Models.Simulation.Impl;
using TUGraz.VectoCore.OutputData;
using TUGraz.VectoCore.OutputData.FileIO;
using TUGraz.VectoCore.Tests.Models.SimulationComponent;
using TUGraz.VectoCore.Tests.Utils;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Tests.Reports
{
[TestClass]
public class SumWriterTest
{
[TestMethod]
public void TestSumCalcFixedTime()
{
var writer = new FileOutputWriter("testsumcalc_fixed");
var sumWriter = new SummaryDataContainer(writer);
var modData = new ModalDataContainer("testsumcalc_fixed", FuelType.DieselCI, writer);
modData.AddAuxiliary("FAN");
for (var i = 0; i < 499; i++) {
modData[ModalResultField.simulationInterval] = 1.SI<Second>();
modData[ModalResultField.n_eng_avg] = 600.RPMtoRad();
modData[ModalResultField.v_act] = 20.KMPHtoMeterPerSecond();
modData[ModalResultField.drivingBehavior] = DrivingBehavior.Driving;
modData[ModalResultField.time] = i.SI<Second>();
modData[ModalResultField.dist] = i.SI<Meter>();
modData["FAN"] = 3000.SI<Watt>();
modData[ModalResultField.P_air] = 3000.SI<Watt>();
modData[ModalResultField.P_roll] = 3000.SI<Watt>();
modData[ModalResultField.P_slope] = 3000.SI<Watt>();
modData[ModalResultField.P_aux] = 3000.SI<Watt>();
modData[ModalResultField.P_brake_loss] = 3000.SI<Watt>();
modData[ModalResultField.FCMap] = 1e-4.SI<KilogramPerSecond>();
modData[ModalResultField.altitude] = 0.SI<Meter>();
modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
modData[ModalResultField.P_eng_out] = (i % 2 == 0 ? 1 : -1) * 3000.SI<Watt>();
modData[ModalResultField.P_eng_fcmap] = 0.SI<Watt>();
modData.CommitSimulationStep();
}
sumWriter.Write(modData, 0, 0, new MockRunData());
modData.Finish(VectoRun.Status.Success);
sumWriter.Finish();
var sumData = VectoCSVFile.Read("testsumcalc_fixed.vsum", false, true);
// 3kW * 500s => to kWh
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_air [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_aux_FAN [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_roll [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_grad [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_aux_sum [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_brake [kWh]"), 1e-3);
// 500s * 1e-4 kg/s = 0.05kg => 0.05kg / 500 => to g/h
Assert.AreEqual((500.0 * 1e-4) * 1000 * 3600 / 500.0, sumData.Rows[0].ParseDouble("FC-Map [g/h]"), 1e-3);
// 500s * 1e-4 kg/s = 0.05kg => 0.05kg / 499m => to g/km
Assert.AreEqual((500.0 * 1e-4) * 1000 * 1000 / 499.0, sumData.Rows[0].ParseDouble("FC-Map [g/km]"), 1e-3);
}
[TestMethod]
public void TestSumCalcVariableTime()
{
var writer = new FileOutputWriter("testsumcalc_var");
var sumWriter = new SummaryDataContainer(writer);
var modData = new ModalDataContainer("testsumcalc_var", FuelType.DieselCI, writer);
modData.AddAuxiliary("FAN");
var timeSteps = new[]
{ 0.5.SI<Second>(), 0.3.SI<Second>(), 1.2.SI<Second>(), 12.SI<Second>(), 0.1.SI<Second>() };
var powerDemand = new[]
{ 1000.SI<Watt>(), 1500.SI<Watt>(), 2000.SI<Watt>(), 2500.SI<Watt>(), 3000.SI<Watt>() };
for (var i = 0; i < 500; i++) {
modData[ModalResultField.simulationInterval] = timeSteps[i % timeSteps.Length];
modData[ModalResultField.time] = i.SI<Second>();
modData[ModalResultField.dist] = i.SI<Meter>();
modData[ModalResultField.n_eng_avg] = 600.RPMtoRad();
modData[ModalResultField.v_act] = 20.KMPHtoMeterPerSecond();
modData[ModalResultField.drivingBehavior] = DrivingBehavior.Driving;
modData["FAN"] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_air] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_roll] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_slope] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_aux] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_brake_loss] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.altitude] = 0.SI<Meter>();
modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
modData[ModalResultField.P_eng_out] = (i % 2 == 0 ? 1 : -1) * powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_eng_fcmap] = 0.SI<Watt>();
modData.CommitSimulationStep();
}
sumWriter.Write(modData, 0, 0, new MockRunData());
modData.Finish(VectoRun.Status.Success);
sumWriter.Finish();
var sumData = VectoCSVFile.Read("testsumcalc_var.vsum", false, true);
// sum(dt * p) => to kWh
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_air [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_aux_FAN [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_roll [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_grad [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_aux_sum [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_brake [kWh]"), 1e-3);
}
}
using System.IO;
using System.Xml;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.InputData.FileIO.XML.Declaration;
using TUGraz.VectoCore.Models.Declaration;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.Simulation.DataBus;
using TUGraz.VectoCore.Models.Simulation.Impl;
using TUGraz.VectoCore.OutputData;
using TUGraz.VectoCore.OutputData.FileIO;
using TUGraz.VectoCore.OutputData.XML;
using TUGraz.VectoCore.Tests.Models.SimulationComponent;
using TUGraz.VectoCore.Tests.Utils;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Tests.Reports
{
[TestClass]
public class SumWriterTest
{
[TestMethod]
public void TestSumCalcFixedTime()
{
var writer = new FileOutputWriter("testsumcalc_fixed");
var sumWriter = new SummaryDataContainer(writer);
var modData = new ModalDataContainer("testsumcalc_fixed", FuelType.DieselCI, writer);
modData.AddAuxiliary("FAN");
for (var i = 0; i < 499; i++) {
modData[ModalResultField.simulationInterval] = 1.SI<Second>();
modData[ModalResultField.n_eng_avg] = 600.RPMtoRad();
modData[ModalResultField.v_act] = 20.KMPHtoMeterPerSecond();
modData[ModalResultField.drivingBehavior] = DrivingBehavior.Driving;
modData[ModalResultField.time] = i.SI<Second>();
modData[ModalResultField.dist] = i.SI<Meter>();
modData["FAN"] = 3000.SI<Watt>();
modData[ModalResultField.P_air] = 3000.SI<Watt>();
modData[ModalResultField.P_roll] = 3000.SI<Watt>();
modData[ModalResultField.P_slope] = 3000.SI<Watt>();
modData[ModalResultField.P_aux] = 3000.SI<Watt>();
modData[ModalResultField.P_brake_loss] = 3000.SI<Watt>();
modData[ModalResultField.FCMap] = 1e-4.SI<KilogramPerSecond>();
modData[ModalResultField.altitude] = 0.SI<Meter>();
modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
modData[ModalResultField.P_eng_out] = (i % 2 == 0 ? 1 : -1) * 3000.SI<Watt>();
modData[ModalResultField.P_eng_fcmap] = 0.SI<Watt>();
modData.CommitSimulationStep();
}
sumWriter.Write(modData, 0, 0, new MockRunData());
modData.Finish(VectoRun.Status.Success);
sumWriter.Finish();
var sumData = VectoCSVFile.Read("testsumcalc_fixed.vsum", false, true);
// 3kW * 500s => to kWh
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_air [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_aux_FAN [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_roll [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_grad [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_aux_sum [kWh]"), 1e-3);
Assert.AreEqual(500.0 * 3000.0 / 1000 / 3600, sumData.Rows[0].ParseDouble("E_brake [kWh]"), 1e-3);
// 500s * 1e-4 kg/s = 0.05kg => 0.05kg / 500 => to g/h
Assert.AreEqual((500.0 * 1e-4) * 1000 * 3600 / 500.0, sumData.Rows[0].ParseDouble("FC-Map [g/h]"), 1e-3);
// 500s * 1e-4 kg/s = 0.05kg => 0.05kg / 499m => to g/km
Assert.AreEqual((500.0 * 1e-4) * 1000 * 1000 / 499.0, sumData.Rows[0].ParseDouble("FC-Map [g/km]"), 1e-3);
}
[TestMethod]
public void TestSumCalcVariableTime()
{
var writer = new FileOutputWriter("testsumcalc_var");
var sumWriter = new SummaryDataContainer(writer);
var modData = new ModalDataContainer("testsumcalc_var", FuelType.DieselCI, writer);
modData.AddAuxiliary("FAN");
var timeSteps = new[]
{ 0.5.SI<Second>(), 0.3.SI<Second>(), 1.2.SI<Second>(), 12.SI<Second>(), 0.1.SI<Second>() };
var powerDemand = new[]
{ 1000.SI<Watt>(), 1500.SI<Watt>(), 2000.SI<Watt>(), 2500.SI<Watt>(), 3000.SI<Watt>() };
for (var i = 0; i < 500; i++) {
modData[ModalResultField.simulationInterval] = timeSteps[i % timeSteps.Length];
modData[ModalResultField.time] = i.SI<Second>();
modData[ModalResultField.dist] = i.SI<Meter>();
modData[ModalResultField.n_eng_avg] = 600.RPMtoRad();
modData[ModalResultField.v_act] = 20.KMPHtoMeterPerSecond();
modData[ModalResultField.drivingBehavior] = DrivingBehavior.Driving;
modData["FAN"] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_air] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_roll] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_slope] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_aux] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_brake_loss] = powerDemand[i % powerDemand.Length];
modData[ModalResultField.altitude] = 0.SI<Meter>();
modData[ModalResultField.acc] = 0.SI<MeterPerSquareSecond>();
modData[ModalResultField.P_eng_out] = (i % 2 == 0 ? 1 : -1) * powerDemand[i % powerDemand.Length];
modData[ModalResultField.P_eng_fcmap] = 0.SI<Watt>();
modData.CommitSimulationStep();
}
sumWriter.Write(modData, 0, 0, new MockRunData());
modData.Finish(VectoRun.Status.Success);
sumWriter.Finish();
var sumData = VectoCSVFile.Read("testsumcalc_var.vsum", false, true);
// sum(dt * p) => to kWh
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_air [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_aux_FAN [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_roll [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_grad [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_aux_sum [kWh]"), 1e-3);
Assert.AreEqual(0.934722222, sumData.Rows[0].ParseDouble("E_brake [kWh]"), 1e-3);
}
[TestMethod]
public void TestSumDataMetaInformation()
{
var jobfile = @"Testdata\XML\XMLReaderDeclaration\vecto_vehicle-sample.xml";
var dataProvider = new XMLDeclarationInputDataProvider(XmlTextReader.Create(jobfile), true);
var writer = new FileOutputWriter(jobfile);
var xmlReport = new XMLDeclarationReport(writer);
var sumData = new SummaryDataContainer(writer);
var jobContainer = new JobContainer(sumData);
if (File.Exists(writer.SumFileName)) {
File.Delete(writer.SumFileName);
}
var runsFactory = new SimulatorFactory(ExecutionMode.Declaration, dataProvider, writer, xmlReport) {
WriteModalResults = false,
Validate = false,
};
jobContainer.AddRuns(runsFactory);
jobContainer.Execute();
jobContainer.WaitFinished();
var sumRow = sumData.Table.Rows[1];
Assert.AreEqual(dataProvider.VehicleInputData.Manufacturer, sumRow[SummaryDataContainer.VEHICLE_MANUFACTURER]);
Assert.AreEqual(dataProvider.VehicleInputData.Model, sumRow[SummaryDataContainer.VEHICLE_MODEL]);
Assert.AreEqual(dataProvider.VehicleInputData.VIN, sumRow[SummaryDataContainer.VIN_NUMBER]);
Assert.AreEqual(dataProvider.EngineInputData.Manufacturer, sumRow[SummaryDataContainer.ENGINE_MANUFACTURER]);
Assert.AreEqual(dataProvider.EngineInputData.Model, sumRow[SummaryDataContainer.ENGINE_MODEL]);
Assert.AreEqual(dataProvider.EngineInputData.FuelType.GetLabel(), sumRow[SummaryDataContainer.ENGINE_FUEL_TYPE]);
Assert.AreEqual((dataProvider.EngineInputData.RatedPowerDeclared.ConvertTo().Kilo.Watt.Value()),
((SI)sumRow[SummaryDataContainer.ENGINE_RATED_POWER]).Value());
Assert.AreEqual(dataProvider.EngineInputData.RatedSpeedDeclared.AsRPM,
((SI)sumRow[SummaryDataContainer.ENGINE_RATED_SPEED]).Value());
Assert.AreEqual(dataProvider.EngineInputData.Displacement.ConvertTo().Cubic.Centi.Meter.Value(),
((SI)sumRow[SummaryDataContainer.ENGINE_DISPLACEMENT]).Value());
Assert.AreEqual(dataProvider.GearboxInputData.Manufacturer, sumRow[SummaryDataContainer.GEARBOX_MANUFACTURER]);
Assert.AreEqual(dataProvider.GearboxInputData.Model, sumRow[SummaryDataContainer.GEARBOX_MODEL]);
Assert.AreEqual(dataProvider.AxleGearInputData.Manufacturer, sumRow[SummaryDataContainer.AXLE_MANUFACTURER]);
Assert.AreEqual(dataProvider.AxleGearInputData.Model, sumRow[SummaryDataContainer.AXLE_MODEL]);
}
}
}
\ No newline at end of file
source diff could not be displayed: it is too large. Options to address this: view the blob.
......@@ -2543,9 +2543,14 @@
<Folder Include="Integration\FullPowertrain\" />
</ItemGroup>
<ItemGroup>
<Content Include="TestData\XML\XMLReaderDeclaration\vecto_engine-sample.xml" />
<Content Include="TestData\XML\XMLReaderDeclaration\vecto_gearbox-sample.xml" />
<Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_certificationOptions.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="TestData\XML\XMLReaderDeclaration\vecto_vehicle-sample_FULL.xml">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
......
......@@ -60,6 +60,9 @@ namespace TUGraz.VectoCore.Tests.XML
const string SampleVehicleDecl = "TestData/XML/XMLReaderDeclaration/vecto_vehicle-sample.xml";
const string SampleVehicleFullDecl = "TestData/XML/XMLReaderDeclaration/vecto_vehicle-sample_FULL.xml";
const string SampleVehicleFullDeclCertificationOptions =
"TestData/XML/XMLReaderDeclaration/vecto_vehicle-sample_certificationOptions.xml";
[TestMethod]
public void TestXMLInputEng()
{
......@@ -802,5 +805,18 @@ namespace TUGraz.VectoCore.Tests.XML
Assert.AreEqual("only the drive shaft of the PTO - multi-disc clutch", ptoDataProvider.PTOTransmissionType);
Assert.AreEqual(1000, lookup.PowerDemand.Value());
}
[TestMethod]
public void TestCertificationMethodInput()
{
var reader = XmlReader.Create(SampleVehicleFullDeclCertificationOptions);
var inputDataProvider = new XMLDeclarationInputDataProvider(reader, true);
Assert.AreEqual(CertificationMethod.Option2, inputDataProvider.GearboxInputData.CertificationMethod);
Assert.AreEqual(CertificationMethod.Measured, inputDataProvider.AxleGearInputData.CertificationMethod);
Assert.AreEqual(CertificationMethod.Measured, inputDataProvider.RetarderInputData.CertificationMethod);
Assert.AreEqual(CertificationMethod.Measured, inputDataProvider.AirdragInputData.CertificationMethod);
}
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment