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

Skip to content
Snippets Groups Projects
Commit 84b8d023 authored by Michael KRISPER's avatar Michael KRISPER
Browse files

added test cases for automatic cycle detection and reading

parent e9f93a2f
No related branches found
No related tags found
No related merge requests found
......@@ -306,11 +306,19 @@ namespace TUGraz.VectoCore.InputData.Reader
protected static bool CheckColumns(string[] header, IEnumerable<string> allowedCols, IEnumerable<string> requiredCols,
bool throwExceptions, bool allowAux)
{
var diff = header.GroupBy(c => c).Where(g => g.Count() > 2).SelectMany(g => g).ToList();
if (diff.Any()) {
if (throwExceptions) {
throw new VectoException("Column(s) defined more than once: " + ", ".Join(diff.OrderBy(x => x)));
}
return false;
}
if (allowAux) {
header = header.Where(c => !c.StartsWith(Fields.AuxiliarySupplyPower)).ToArray();
}
var diff = header.Except(allowedCols).ToList();
diff = header.Except(allowedCols).ToList();
if (diff.Any()) {
if (throwExceptions) {
throw new VectoException("Column(s) not allowed: " + ", ".Join(diff));
......@@ -429,9 +437,10 @@ namespace TUGraz.VectoCore.InputData.Reader
public static bool ValidateHeader(string[] header, bool throwExceptions = true)
{
var allowedCols = new[] {
Fields.Time,
Fields.EngineSpeed,
Fields.EngineTorque,
Fields.EnginePower,
Fields.EngineSpeed,
Fields.AdditionalAuxPowerDemand
};
......@@ -476,7 +485,7 @@ namespace TUGraz.VectoCore.InputData.Reader
PWheel = row.ParseDouble(Fields.PWheel).SI().Kilo.Watt.Cast<Watt>(),
Gear = (uint)row.ParseDouble(Fields.Gear),
AngularVelocity = row.ParseDouble(Fields.EngineSpeed).RPMtoRad(),
AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
}).ToArray();
return entries;
......@@ -491,7 +500,12 @@ namespace TUGraz.VectoCore.InputData.Reader
Fields.EngineSpeed,
Fields.AdditionalAuxPowerDemand
};
var requiredCols = allowedCols;
var requiredCols = new[] {
Fields.Time,
Fields.PWheel,
Fields.Gear,
Fields.EngineSpeed
};
return CheckColumns(header, allowedCols, requiredCols, throwExceptions, allowAux: false);
}
......@@ -511,8 +525,7 @@ namespace TUGraz.VectoCore.InputData.Reader
Time = row.ParseDouble(Fields.Time).SI<Second>(),
VehicleTargetSpeed = row.ParseDouble(Fields.VehicleSpeed).KMPHtoMeterPerSecond(),
RoadGradient = VectoMath.InclinationToAngle(row.ParseDoubleOrGetDefault(Fields.RoadGradient) / 100.0),
AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
// todo mk-2016-02-25 decide if null or 0.SI<MeterPerSecond>()?
AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
AirSpeedRelativeToVehicle =
crossWindRequired ? row.ParseDouble(Fields.AirSpeedRelativeToVehicle).KMPHtoMeterPerSecond() : null,
WindYawAngle = crossWindRequired ? row.ParseDouble(Fields.WindYawAngle) : 0,
......@@ -537,7 +550,6 @@ namespace TUGraz.VectoCore.InputData.Reader
Fields.Time,
Fields.VehicleSpeed,
Fields.RoadGradient,
Fields.AdditionalAuxPowerDemand,
};
return CheckColumns(header, allowedCols, requiredCols, throwExceptions, allowAux: true) &&
......@@ -560,7 +572,7 @@ namespace TUGraz.VectoCore.InputData.Reader
Time = row.ParseDouble(Fields.Time).SI<Second>(),
VehicleTargetSpeed = row.ParseDouble(Fields.VehicleSpeed).KMPHtoMeterPerSecond(),
RoadGradient = VectoMath.InclinationToAngle(row.ParseDoubleOrGetDefault(Fields.RoadGradient) / 100.0),
AdditionalAuxPowerDemand = row.ParseDouble(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
AdditionalAuxPowerDemand = row.ParseDoubleOrGetDefault(Fields.AdditionalAuxPowerDemand).SI().Kilo.Watt.Cast<Watt>(),
AngularVelocity = row.ParseDouble(Fields.EngineSpeed).RPMtoRad(),
Gear = (uint)row.ParseDouble(Fields.Gear),
AirSpeedRelativeToVehicle =
......@@ -590,7 +602,6 @@ namespace TUGraz.VectoCore.InputData.Reader
Fields.Time,
Fields.VehicleSpeed,
Fields.RoadGradient,
Fields.AdditionalAuxPowerDemand,
Fields.EngineSpeed,
Fields.Gear
};
......
......@@ -144,7 +144,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
{
var dataWriter = new MockModalDataContainer();
var container = new VehicleContainer(dataWriter);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.MeasuredSpeed, false);
var cycle = new MockDrivingCycle(container, data);
var aux = new EngineAuxiliary(container);
......@@ -174,7 +174,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
dataWriter.AddAuxiliary("CONSTANT");
var container = new VehicleContainer(dataWriter);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.MeasuredSpeed, false);
// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
......@@ -231,7 +231,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
dataWriter.AddAuxiliary(auxId);
var container = new VehicleContainer(dataWriter);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.MeasuredSpeed, false);
// cycle ALT1 is set to values to equal the first few fixed points in the auxiliary file.
// ALT1.aux file: nAuxiliary speed 2358: 0, 0.38, 0.49, 0.64, ...
// ALT1 in cycle file: 0, 0.3724 (=0.38*0.96), 0.4802 (=0.49*0.96), 0.6272 (0.64*0.96), ...
......@@ -280,7 +280,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
public void AuxColumnMissing()
{
var container = new VehicleContainer();
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.TimeBased, false);
var data = DrivingCycleDataReader.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri", CycleType.MeasuredSpeed, false);
var cycle = new MockDrivingCycle(container, data);
var aux = new EngineAuxiliary(container);
......
......@@ -29,7 +29,7 @@
* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
*/
using System;
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TUGraz.VectoCore.Exceptions;
using TUGraz.VectoCore.InputData.Reader;
......@@ -77,7 +77,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
Assert.AreEqual(0.SI<NewtonMeter>(), outPort.Torque);
}
[TestMethod, Ignore]
[TestMethod]
public void TestEngineOnlyWithTimestamps()
{
var container = new VehicleContainer();
......@@ -101,7 +101,6 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
response = cycle.OutPort().Request(absTime, dt);
Assert.IsInstanceOfType(response, typeof(ResponseSuccess));
var dataWriter = new MockModalDataContainer();
container.CommitSimulationStep(absTime, dt);
Assert.AreEqual(absTime, outPort.AbsTime);
......@@ -122,7 +121,6 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
response = cycle.OutPort().Request(absTime, dt);
Assert.IsInstanceOfType(response, typeof(ResponseSuccess));
dataWriter = new MockModalDataContainer();
container.CommitSimulationStep(absTime, dt);
Assert.AreEqual(absTime, outPort.AbsTime);
......@@ -201,6 +199,7 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
{
// declaration mode - distance based
TestCycleDetect("<s>,<v>,<grad>,<stop>", CycleType.DistanceBased);
TestCycleDetect("<s>,<<v>,>grad>,<stop>", CycleType.DistanceBased);
// engineering mode - distance based
TestCycleDetect("<s>,<v>,<grad>,<stop>,<Padd>,<vair_res>,<vair_beta>,<Aux_ELE>,<Aux_SP>", CycleType.DistanceBased);
......@@ -212,32 +211,33 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
TestCycleDetect("s,v,stop", CycleType.DistanceBased);
// engineering mode - time based
// does not exist.
// mk 2016-03-01: plain time based cycle does not exist anymore. replaced by measuredspeed, measuredspeed gear, engineonly and pwheel
// engine only
TestCycleDetect("<t>,<n>,<Me>,<Padd>", CycleType.EngineOnly);
TestCycleDetect("<t>,<n>,<Me>", CycleType.EngineOnly);
TestCycleDetect("<t>,<n>,<Me>,<Pe>,<Padd>", CycleType.EngineOnly);
TestCycleDetect("<t>,<n>,<Pe>,<Padd>", CycleType.EngineOnly);
TestCycleDetect("<t>,<n>,<Pe>", CycleType.EngineOnly);
TestCycleDetect("<Me>,<n>,<Padd>,<t>", CycleType.EngineOnly);
TestCycleDetect("t,n,Me,Padd", CycleType.EngineOnly);
// p_wheel
TestCycleDetect("<t>,<Pwheel>,<Gear>,<n>,<Padd>", CycleType.PWheel);
TestCycleDetect("<t>,<Pwheel>,<gear>,<n>,<Padd>", CycleType.PWheel);
TestCycleDetect("<gear>,<t>,<n>,<Padd>,<Pwheel>", CycleType.PWheel);
TestCycleDetect("<t>,<Pwheel>,<Gear>,<n>", CycleType.PWheel);
TestCycleDetect("<t>,<Pwheel>,<gear>,<n>", CycleType.PWheel);
TestCycleDetect("t,Pwheel,gear,n,Padd", CycleType.PWheel);
TestCycleDetect("Pwheel,t,gear,n,Padd", CycleType.PWheel);
// measured speed
TestCycleDetect("<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_ALT>,<Aux_ES>", CycleType.MeasuredSpeed);
TestCycleDetect("<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_ELE>,<Aux_SP>", CycleType.MeasuredSpeed);
TestCycleDetect("<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>", CycleType.MeasuredSpeed);
TestCycleDetect("<t>,<v>,<grad>,<Padd>", CycleType.MeasuredSpeed);
TestCycleDetect("<t>,<v>,<grad>,<Padd>,<Aux_ALT>,<Aux_ES>", CycleType.MeasuredSpeed);
TestCycleDetect("<t>,<v>,<grad>", CycleType.MeasuredSpeed);
TestCycleDetect("<t>,<Padd>,<grad>,<v>", CycleType.MeasuredSpeed);
TestCycleDetect("t,v,grad,Padd", CycleType.MeasuredSpeed);
TestCycleDetect("t,v,grad", CycleType.TimeBased);
TestCycleDetect("t,v,grad", CycleType.MeasuredSpeed);
// measured speed with gear
TestCycleDetect("<t>,<v>,<grad>,<Padd>,<n>,<gear>,<vair_res>,<vair_beta>,<Aux_HVAC>,<Aux_HP>",
......@@ -248,6 +248,123 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
TestCycleDetect("<t>,<v>,<grad>,<n>,<gear>", CycleType.MeasuredSpeedGear);
TestCycleDetect("<n>,<Padd>,<gear>,<v>,<grad>,<t>", CycleType.MeasuredSpeedGear);
TestCycleDetect("t,v,grad,Padd,n,gear", CycleType.MeasuredSpeedGear);
// wrong cycles
AssertHelper.Exception<VectoException>(() => TestCycleDetect("v,grad,Padd,n,gear", CycleType.MeasuredSpeedGear));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("<t>,<grad>", CycleType.MeasuredSpeed));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("<t>,<Pwheel>,<n>,<Padd>", CycleType.PWheel));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("<t>,<Pwheel>,<Pwheel>,<n>,<Padd>", CycleType.PWheel));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("<t>,<n>,<torque>,<>,<Padd>", CycleType.EngineOnly));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("x,y,z", CycleType.EngineOnly));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("x", CycleType.EngineOnly));
AssertHelper.Exception<VectoException>(() => TestCycleDetect("", CycleType.MeasuredSpeed));
AssertHelper.Exception<VectoException>(
() =>
TestCycleDetect("<t>,<v>,<gear>,<Pwheel>,<s>,<grad>,<Padd>,<n>,<gear>,<vair_res>,<vair_beta>,<Aux_HVAC>,<Aux_HP>",
CycleType.MeasuredSpeedGear));
}
[TestMethod]
public void DrivingCycle_Read()
{
// declaration mode - distance based
TestCycleRead("<s>,<v>,<grad>,<stop>\n1,1,1,0", CycleType.DistanceBased, 2);
TestCycleRead("<s>,<v>,<grad>,<stop>\n1,0,1,1", CycleType.DistanceBased, 3);
AssertHelper.Exception<VectoException>(() => TestCycleRead("<s>,<v>,<grad>,<stop>\n1,1,1,1", CycleType.DistanceBased));
TestCycleRead("<s>,<<v>,>grad>,<stop>\n1,1,1,0", CycleType.DistanceBased, 2);
// engineering mode - distance based
TestCycleRead("<s>,<v>,<grad>,<stop>,<Padd>,<vair_res>,<vair_beta>,<Aux_ELE>,<Aux_SP>\n1,1,1,0,1,1,1,1,1",
CycleType.DistanceBased, 2);
TestCycleRead("<s>,<v>,<stop>,<Padd>,<vair_res>,<vair_beta>,<Aux_ELE>,<Aux_SP>\n1,1,0,1,1,1,1,1",
CycleType.DistanceBased, 2);
TestCycleRead("<s>,<v>,<grad>,<stop>,<Padd>,<Aux_ELE>,<Aux_SP>\n1,1,1,0,1,1,1", CycleType.DistanceBased, 2);
TestCycleRead("<s>,<v>,<grad>,<stop>,<Padd>,<vair_res>,<vair_beta>\n1,1,1,0,1,1,1", CycleType.DistanceBased, 2);
TestCycleRead("<s>,<v>,<stop>,<Padd>\n1,1,0,1", CycleType.DistanceBased, 2);
TestCycleRead("s,v,stop,Padd\n1,1,0,1", CycleType.DistanceBased, 2);
TestCycleRead("s,v,stop\n1,1,0", CycleType.DistanceBased, 2);
// engineering mode - time based
// mk 2016-03-01: plain time based cycle does not exist anymore. replaced by measuredspeed, measuredspeed gear, engineonly and pwheel
// engine only
TestCycleRead("<t>,<n>,<Me>,<Padd>\n1,1,1,1", CycleType.EngineOnly);
TestCycleRead("<t>,<n>,<Me>\n1,1,1", CycleType.EngineOnly);
TestCycleRead("<t>,<n>,<Me>,<Pe>,<Padd>\n1,1,1,1,1", CycleType.EngineOnly);
TestCycleRead("<t>,<n>,<Pe>,<Padd>\n1,1,1,1", CycleType.EngineOnly);
TestCycleRead("<t>,<n>,<Pe>\n1,1,1", CycleType.EngineOnly);
TestCycleRead("<Me>,<n>,<Padd>,<t>\n1,1,1,1", CycleType.EngineOnly);
TestCycleRead("t,n,Me,Padd\n1,1,1,1", CycleType.EngineOnly);
// p_wheel
TestCycleRead("<t>,<Pwheel>,<gear>,<n>,<Padd>\n1,1,1,1,1", CycleType.PWheel);
TestCycleRead("<gear>,<t>,<n>,<Padd>,<Pwheel>\n1,1,1,1,1", CycleType.PWheel);
TestCycleRead("<t>,<Pwheel>,<gear>,<n>\n1,1,1,1", CycleType.PWheel);
TestCycleRead("t,Pwheel,gear,n,Padd\n1,1,1,1,1", CycleType.PWheel);
TestCycleRead("Pwheel,t,gear,n,Padd\n1,1,1,1,1", CycleType.PWheel);
// measured speed
TestCycleRead("<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_ELE>,<Aux_SP>\n1,1,1,1,1,1,1,1",
CycleType.MeasuredSpeed);
TestCycleRead("<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>,<Aux_ALT>,<Aux_ES>\n1,1,1,1,1,1,1,1",
CycleType.MeasuredSpeed);
TestCycleRead("<t>,<v>,<grad>,<Padd>,<vair_res>,<vair_beta>\n1,1,1,1,1,1", CycleType.MeasuredSpeed);
TestCycleRead("<t>,<v>,<grad>,<Padd>\n1,1,1,1", CycleType.MeasuredSpeed);
TestCycleRead("<t>,<v>,<grad>,<Padd>,<Aux_ALT>,<Aux_ES>\n1,1,1,1,1,1", CycleType.MeasuredSpeed);
TestCycleRead("<t>,<v>,<grad>\n1,1,1", CycleType.MeasuredSpeed);
TestCycleRead("<t>,<Padd>,<grad>,<v>\n1,1,1,1", CycleType.MeasuredSpeed);
TestCycleRead("t,v,grad,Padd\n1,1,1,1", CycleType.MeasuredSpeed);
TestCycleRead("t,v,grad\n1,1,1", CycleType.MeasuredSpeed);
// measured speed with gear
TestCycleRead("<t>,<v>,<grad>,<Padd>,<n>,<gear>,<vair_res>,<vair_beta>,<Aux_HVAC>,<Aux_HP>\n1,1,1,1,1,1,1,1,1,1",
CycleType.MeasuredSpeedGear);
TestCycleRead("<t>,<v>,<grad>,<Padd>,<n>,<gear>,<vair_res>,<vair_beta>\n1,1,1,1,1,1,1,1",
CycleType.MeasuredSpeedGear);
TestCycleRead("<t>,<v>,<grad>,<Padd>,<n>,<gear>,<Aux_HVAC>,<Aux_HP>\n1,1,1,1,1,1,1,1", CycleType.MeasuredSpeedGear);
TestCycleRead("<t>,<v>,<grad>,<Padd>,<n>,<gear>\n1,1,1,1,1,1", CycleType.MeasuredSpeedGear);
TestCycleRead("<t>,<v>,<grad>,<n>,<gear>\n1,1,1,1,1", CycleType.MeasuredSpeedGear);
TestCycleRead("<n>,<Padd>,<gear>,<v>,<grad>,<t>\n1,1,1,1,1,1", CycleType.MeasuredSpeedGear);
TestCycleRead("t,v,grad,Padd,n,gear\n1,1,1,1,1,1", CycleType.MeasuredSpeedGear);
// wrong cycles
AssertHelper.Exception<VectoException>(
() => TestCycleRead("v,grad,Padd,n,gear\n1,1,1,1,1", CycleType.MeasuredSpeedGear));
AssertHelper.Exception<VectoException>(() => TestCycleRead("<t>,<grad>\n1,1,1,1,1,1,1,1,1", CycleType.MeasuredSpeed));
AssertHelper.Exception<VectoException>(
() => TestCycleRead("<t>,<Pwheel>,<n>,<Padd>\n1,1,1,1,1,1,1,1,1", CycleType.PWheel));
AssertHelper.Exception<VectoException>(
() => TestCycleRead("<t>,<Pwheel>,<Pwheel>,<n>,<Padd>\n1,1,1,1,1,1,1,1,1", CycleType.PWheel));
AssertHelper.Exception<VectoException>(
() => TestCycleRead("<t>,<n>,<torque>,<>,<Padd>\n1,1,1,1,1,1,1,1,1", CycleType.EngineOnly));
AssertHelper.Exception<VectoException>(() => TestCycleRead("x,y,z\n1,1,1,1,1,1,1,1,1", CycleType.EngineOnly));
AssertHelper.Exception<VectoException>(() => TestCycleRead("x\n1,1,1,1,1,1,1,1,1", CycleType.EngineOnly));
AssertHelper.Exception<VectoException>(() => TestCycleRead("\n1,1,1,1,1,1,1,1,1", CycleType.MeasuredSpeed));
AssertHelper.Exception<VectoException>(() => TestCycleRead(
"<t>,<v>,<gear>,<Pwheel>,<s>,<grad>,<Padd>,<n>,<gear>,<vair_res>,<vair_beta>,<Aux_HVAC>,<Aux_HP>\n1,1,1,1,1,1,1,1,1",
CycleType.MeasuredSpeedGear));
}
[TestMethod]
public void DrivingCycle_Read_File()
{
TestCycleDetect(File.ReadAllText(@"TestData\Cycles\Coach.vdri"), CycleType.DistanceBased);
TestCycleRead(File.ReadAllText(@"TestData\Cycles\Coach.vdri"), CycleType.DistanceBased, 6116);
TestCycleDetect(File.ReadAllText(@"TestData\Cycles\Engine Only1.vdri"), CycleType.EngineOnly);
TestCycleRead(File.ReadAllText(@"TestData\Cycles\Engine Only1.vdri"), CycleType.EngineOnly, 696);
TestCycleDetect(File.ReadAllText(@"TestData\Pwheel\RD_#1_Pwheel_AuxStd.vdri"), CycleType.PWheel);
TestCycleRead(File.ReadAllText(@"TestData\Pwheel\RD_#1_Pwheel_AuxStd.vdri"), CycleType.PWheel, 3917);
TestCycleDetect(File.ReadAllText(@"TestData\MeasuredSpeed\MeasuredSpeedVairAux.vdri"), CycleType.MeasuredSpeed);
TestCycleRead(File.ReadAllText(@"TestData\MeasuredSpeed\MeasuredSpeedVairAux.vdri"), CycleType.MeasuredSpeed, 1300);
TestCycleDetect(File.ReadAllText(@"TestData\MeasuredSpeed\MeasuredSpeed_Gear_Rural_VairAux.vdri"),
CycleType.MeasuredSpeedGear);
TestCycleRead(File.ReadAllText(@"TestData\MeasuredSpeed\MeasuredSpeed_Gear_Rural_VairAux.vdri"),
CycleType.MeasuredSpeedGear, 1300);
}
......@@ -257,10 +374,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
Assert.AreEqual(cycleType, cycleTypeCalc);
}
private static void TestCycleRead(string inputData, CycleType cycleType)
private static void TestCycleRead(string inputData, CycleType cycleType, int entryCount = 1)
{
var drivingCycle = DrivingCycleDataReader.ReadFromStream(inputData.GetStream(), cycleType, "", false);
Assert.AreEqual(cycleType, drivingCycle.CycleType);
Assert.AreEqual(entryCount, drivingCycle.Entries.Count, "Driving Cycle Entry count.");
}
}
}
\ 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