From cc5420bc3af6ac91fd554416698b267fb006c50d Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 16 Oct 2017 14:46:21 +0200 Subject: [PATCH] adding tests for expected gearshift count --- .../Reports/GearshiftCountTest.cs | 177 ++++++++++++++++++ 1 file changed, 177 insertions(+) create mode 100644 VectoCore/VectoCoreTest/Reports/GearshiftCountTest.cs diff --git a/VectoCore/VectoCoreTest/Reports/GearshiftCountTest.cs b/VectoCore/VectoCoreTest/Reports/GearshiftCountTest.cs new file mode 100644 index 0000000000..af2d7db83c --- /dev/null +++ b/VectoCore/VectoCoreTest/Reports/GearshiftCountTest.cs @@ -0,0 +1,177 @@ +using NUnit.Framework; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Utils; +using TUGraz.VectoCore.Models.Simulation.Data; +using TUGraz.VectoCore.OutputData; + +namespace TUGraz.VectoCore.Tests.Reports +{ + [TestFixture] + public class GearshiftCountTest + { + [TestCase()] + public void TestGearshiftCountTractionInterruptionShiftup() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 34, gear = 4u }, + new DummyEntry { v = 34.5, gear = 4u }, + new DummyEntry { v = 33.3, gear = 0 }, + new DummyEntry { v = 33.2, gear = 0 }, + new DummyEntry { v = 32, gear = 5 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(1, gearshifts.Value()); + } + + [TestCase()] + public void TestGearshiftCountTractionInterruption() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 34, gear = 4u }, + new DummyEntry { v = 34.5, gear = 4u }, + new DummyEntry { v = 33.3, gear = 0 }, + new DummyEntry { v = 33.2, gear = 0 }, + new DummyEntry { v = 32, gear = 4 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(0, gearshifts.Value()); + } + + [TestCase()] + public void TestGearshiftCountTractionInterruptionShiftDown() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 34, gear = 4u }, + new DummyEntry { v = 34.5, gear = 4u }, + new DummyEntry { v = 33.3, gear = 0 }, + new DummyEntry { v = 33.2, gear = 0 }, + new DummyEntry { v = 32, gear = 3 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(1, gearshifts.Value()); + } + + + [TestCase()] + public void TestGearshiftCountTractionInterruptionStop() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 4, gear = 4u }, + new DummyEntry { v = 3.5, gear = 4u }, + new DummyEntry { v = 0, gear = 0 }, + new DummyEntry { v = 0, gear = 0 }, + new DummyEntry { v = 0, gear = 0 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(1, gearshifts.Value()); + } + + [TestCase()] + public void TestGearshiftCountTractionInterruptionStopDriveOff() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 4, gear = 4u }, + new DummyEntry { v = 3.5, gear = 4u }, + new DummyEntry { v = 0, gear = 0 }, + new DummyEntry { v = 0, gear = 0 }, + new DummyEntry { v = 0, gear = 0 }, + new DummyEntry { v = 3, gear = 2 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(2, gearshifts.Value()); + } + + + [TestCase()] + public void TestGearshiftCountTractionInterruptionShiftupAT() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 34, gear = 4u }, + new DummyEntry { v = 34.5, gear = 4u }, + new DummyEntry { v = 33.3, gear = 5 }, + new DummyEntry { v = 33.2, gear = 5 }, + new DummyEntry { v = 32, gear = 5 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(1, gearshifts.Value()); + } + + + [TestCase()] + public void TestGearshiftCountTractionInterruptionShiftDownAT() + { + var modData = new ModalDataContainer("GearshiftRun", FuelType.DieselCI, null); + + var entries = new[] { + new DummyEntry { v = 34, gear = 4u }, + new DummyEntry { v = 34.5, gear = 4u }, + new DummyEntry { v = 33.3, gear = 4 }, + new DummyEntry { v = 33.2, gear = 3 }, + new DummyEntry { v = 32, gear = 3 } + }; + foreach (var dummyEntry in entries) { + modData[ModalResultField.v_act] = dummyEntry.v.KMPHtoMeterPerSecond(); + modData[ModalResultField.Gear] = dummyEntry.gear; + modData.CommitSimulationStep(); + } + + var gearshifts = modData.GearshiftCount(); + Assert.AreEqual(1, gearshifts.Value()); + } + + + public class DummyEntry + { + public double v; + public uint gear; + } + } +} -- GitLab