From 0b175576a306c5fb4d912f5ece9e66e837a5518a Mon Sep 17 00:00:00 2001 From: "VKMTHD\\haraldmartini" <harald.martini@student.tugraz.at> Date: Tue, 7 Feb 2023 16:57:49 +0100 Subject: [PATCH] added vehicle operation testcase that covers all possible groups and missions --- .../Models/Declaration/DeclarationDataTest.cs | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 7c64426890..449bd50c47 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -31,6 +31,9 @@ using NUnit.Framework; using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; using System.IO; using System.Linq; using System.Xml; @@ -48,6 +51,7 @@ using TUGraz.VectoCore.InputData.Reader.Impl.DeclarationMode.HeavyLorryRunDataFa using TUGraz.VectoCore.Models.Declaration; using TUGraz.VectoCore.Models.SimulationComponent.Data; using TUGraz.VectoCore.Tests.Utils; +using TUGraz.VectoCore.Utils; namespace TUGraz.VectoCore.Tests.Models.Declaration { @@ -2451,6 +2455,42 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration Assert.AreEqual(expectedDaily * 1000, val.Mileage.DailyMileage.Value()); //stored in meter } + [TestCaseSource(nameof(VehicleOperationTestSource))] + public void VehicleOperationLookupMileage(VehicleClass hdvClass, MissionType mission) + { + var val = DeclarationData.VehicleOperation.LookupVehicleOperation(hdvClass, mission); + } + + + public static IEnumerable<object[]> VehicleOperationTestSource() + { + VehicleClass hdvClass; + + var missions = EnumHelper.GetValues<MissionType>(); + + var segmentTable = VectoCSVFile.ReadStream(RessourceHelper.ReadStream(DeclarationData.DeclarationDataResourcePrefix + ".SegmentTable.csv")); + var hdvMissionDict = new Dictionary<VehicleClass, HashSet<MissionType>>(); + + foreach (DataRow row in segmentTable.Rows) { + var hdvGroup = VehicleClassHelper.Parse(row["HDV group"].ToString()); + hdvMissionDict.TryAdd(hdvGroup, new HashSet<MissionType>()); + foreach (var missionType in missions.Where( + m => m.IsDeclarationMission() && m != MissionType.ExemptedMission && + row.Field<string>(m.GetLabel()) != "-")) { + hdvMissionDict[hdvGroup].Add(missionType); + } + } + + foreach (var hdvCl in + hdvMissionDict + .Where(kv => kv.Value.Count > 0) + .OrderBy(kv => kv.Key)) { + foreach (var mission in hdvCl.Value) { + yield return new object[]{hdvCl.Key, mission}; + } + } + } + [TestCase(VehicleClass.Class53, MissionType.LongHaul)] [TestCase(VehicleClass.Class16, MissionType.UrbanDelivery)] -- GitLab