From 0b0b06a960f23897d5ea87622d46656380671c4c Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Wed, 20 Feb 2019 16:39:57 +0100 Subject: [PATCH] adapt testcase: allow few traction interruptions to be longer than specified in model data (i.e. due to gearshift right before a speed change (simulation interval can't be changed)) --- .../VectoCoreTest/Reports/ModDataTest.cs | 26 +++++++++++++------ 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs index 55d6c357ac..7784bad4b9 100644 --- a/VectoCore/VectoCoreTest/Reports/ModDataTest.cs +++ b/VectoCore/VectoCoreTest/Reports/ModDataTest.cs @@ -148,7 +148,8 @@ namespace TUGraz.VectoCore.Tests.Reports } [TestCase(@"TestData\XML\XMLReaderDeclaration\Tractor_4x2_vehicle-class-5_5_t_0.xml", 1, 1.0), - ] + TestCase(@"TestData\XML\XMLReaderDeclaration\Tractor_4x2_vehicle-class-5_5_t_0.xml", 7, 1.0) + ] public void TractionInterruptionTest(string filename, int idx, double expectedTractionInterruption) { var writer = new FileOutputWriter(filename); @@ -172,19 +173,28 @@ namespace TUGraz.VectoCore.Tests.Reports var tractionInterruptionTimes = ExtractTractionInterruptionTimes(modData); var min = tractionInterruptionTimes.Values.Min(); - var max = tractionInterruptionTimes.Values.Max(); + //var max = tractionInterruptionTimes.Values.Max(); Console.WriteLine("number of traction interruption intervals: {0}", tractionInterruptionTimes.Count); - var exceeding = tractionInterruptionTimes.Where(x => x.Value.IsGreater(expectedTractionInterruption, 0.1)).ToList(); - Console.WriteLine("number of traction interruption times exceeding specified interval: {0}", exceeding.Count()); - if (exceeding.Count > 0) { - foreach (var e in exceeding) { + var exceedingHigh = tractionInterruptionTimes.Where(x => x.Value.IsGreater(expectedTractionInterruption, 0.1)).ToList(); + var exceedingLow = tractionInterruptionTimes.Where(x => x.Value.IsSmaller(expectedTractionInterruption, 0.1)).ToList(); + Console.WriteLine("number of traction interruption times exceeding specified interval: {0}", exceedingHigh.Count()); + if (exceedingHigh.Count > 0) { + foreach (var e in exceedingHigh) { Console.WriteLine("{0} : {1}", e.Key, e.Value); } } + if (exceedingLow.Count > 0) { + foreach (var e in exceedingLow) { + Console.WriteLine("{0} : {1}", e.Key, e.Value); + } + } + + Assert.IsTrue(exceedingHigh.Count < 5); + var max2 = tractionInterruptionTimes.Values.OrderBy(x => x.Value()).Reverse().Skip(5).Max(); - Assert.IsTrue(min.IsEqual(expectedTractionInterruption, 0.05), "minimum traction interruption time: {0}", min); - Assert.IsTrue(max.IsEqual(expectedTractionInterruption, 0.1), "maximum traction interruption time: {0}", max); + Assert.IsTrue(min.IsEqual(expectedTractionInterruption, 0.1), "minimum traction interruption time: {0}", min); + Assert.IsTrue(max2.IsEqual(expectedTractionInterruption, 0.1), "maximum traction interruption time: {0}", max2); } -- GitLab