diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs index 49d52ceb19caed5e8c5fa711c5a5e86a544ff7db..b9ea1483e3eca735d7968eb1f47a5d4b43a21ec6 100644 --- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs +++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs @@ -213,7 +213,7 @@ namespace TUGraz.VectoCore.Models.Declaration public static SegmentLookup GetTruckSegment(IVehicleDeclarationInputData vehicle, bool batteryElectric = false) - { + { var allowVocational = true; var ng = vehicle.ExemptedVehicle ? false : vehicle.Components.EngineInputData?.EngineModes.Any(e => e.Fuels.Any(f => f.FuelType.IsOneOf(FuelType.LPGPI, FuelType.NGCI, FuelType.NGPI))) ?? false; @@ -259,7 +259,7 @@ namespace TUGraz.VectoCore.Models.Declaration case VehicleCategory.Tractor: var vehicleGroup = GetVehicleGroupGroup(vehicleData); var propulsionPower = GetReferencePropulsionPower(vehicleData); - var co2Group = WeightingGroup.Lookup(vehicleGroup.Item1, vehicleData.SleeperCab ?? false, propulsionPower); + var co2Group = WeightingGroup.Lookup(vehicleGroup.Item1, vehicleGroup.Item2 ?? false, vehicleData.SleeperCab ?? false, propulsionPower); return co2Group; default: return Declaration.WeightingGroup.Unknown; diff --git a/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs b/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs index 4024b0f87f28799032cd52abf2ed0700daf5ddac..678a3e0268786e2e1344f09b8362420d0c8d5133 100644 --- a/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs +++ b/VectoCore/VectoCore/Models/Declaration/WeightingGroups.cs @@ -50,12 +50,16 @@ namespace TUGraz.VectoCore.Models.Declaration Group4UD, Group4RD, Group4LH, + Group4V, Group5RD, Group5LH, + Group5V, Group9RD, Group9LH, + Group9V, Group10RD, Group10LH, + Group10V, Group11, Group12, @@ -156,12 +160,16 @@ namespace TUGraz.VectoCore.Models.Declaration case WeightingGroup.Group4UD: case WeightingGroup.Group4RD: case WeightingGroup.Group4LH: + case WeightingGroup.Group4V: case WeightingGroup.Group5RD: case WeightingGroup.Group5LH: + case WeightingGroup.Group5V: case WeightingGroup.Group9RD: case WeightingGroup.Group9LH: + case WeightingGroup.Group9V: case WeightingGroup.Group10RD: case WeightingGroup.Group10LH: + case WeightingGroup.Group10V: return Regex.Split(group.ToString().Replace(Prefix, ""), @"(\d+|\w+)").Where(x => !string.IsNullOrWhiteSpace(x)).Join("-"); default: return Constants.NOT_AVAILABLE; @@ -169,7 +177,7 @@ namespace TUGraz.VectoCore.Models.Declaration } } - public class WeightingGroups : LookupData<VehicleClass, bool, Watt, WeightingGroup> + public class WeightingGroups : LookupData<VehicleClass, bool, bool, Watt, WeightingGroup> { protected readonly List<Entry> Entries = new List<Entry>(); @@ -184,6 +192,7 @@ namespace TUGraz.VectoCore.Models.Declaration foreach (DataRow row in table.Rows) { Entries.Add(new Entry() { VehicleGroup = VehicleClassHelper.Parse(row.Field<string>("vehiclegroup")), + Vocational = "1".Equals(row.Field<string>("Vocational"), StringComparison.InvariantCultureIgnoreCase), SleeperCab = "SleeperCab".Equals(row.Field<string>("cabintype"), StringComparison.InvariantCultureIgnoreCase), RatedPowerMin = row.ParseDouble("engineratedpowermin").SI(Unit.SI.Kilo.Watt).Cast<Watt>(), RatedPowerMax = row.ParseDouble("engineratedpowermax").SI(Unit.SI.Kilo.Watt).Cast<Watt>(), @@ -193,10 +202,10 @@ namespace TUGraz.VectoCore.Models.Declaration } - public override WeightingGroup Lookup(VehicleClass group, bool sleeperCab, Watt engineRatedPower) + public override WeightingGroup Lookup(VehicleClass group, bool vocational, bool sleeperCab, Watt engineRatedPower) { var rows = Entries.FindAll( - x => x.VehicleGroup == group && x.SleeperCab == sleeperCab && engineRatedPower >= x.RatedPowerMin && + x => x.VehicleGroup == group && x.Vocational == vocational && x.SleeperCab == sleeperCab && engineRatedPower >= x.RatedPowerMin && engineRatedPower < x.RatedPowerMax); return rows.Count == 0 ? WeightingGroup.Unknown : rows.First().WeightingGroup; } @@ -205,6 +214,7 @@ namespace TUGraz.VectoCore.Models.Declaration protected class Entry { public VehicleClass VehicleGroup; + public bool Vocational; public bool SleeperCab; public Watt RatedPowerMin; public Watt RatedPowerMax; diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs index 9a1a61de35c8a162bf2fdd89ad163767c4581593..79fee54236af844df54f3f598d3166335e3df1bb 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReport.cs @@ -332,8 +332,10 @@ namespace TUGraz.VectoCore.OutputData.XML var propulsionPower = DeclarationData.GetReferencePropulsionPower(modelData.VehicleData.InputData); WeightingGroup = DeclarationData.WeightingGroup.Lookup( - modelData.VehicleData.VehicleClass, modelData.VehicleData.SleeperCab.Value, - propulsionPower); + modelData.VehicleData.VehicleClass, + modelData.VehicleData.VocationalVehicle, + modelData.VehicleData.SleeperCab.Value, + propulsionPower); } _weightingFactors = WeightingGroup == WeightingGroup.Unknown diff --git a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs index 137a27300ff070991576606a39bdf69c7225bdd5..f448cf03351b52b5b7abc064e3da4d0b120ffdf6 100644 --- a/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs +++ b/VectoCore/VectoCore/OutputData/XML/XMLDeclarationReportCompletedVehicle.cs @@ -72,8 +72,11 @@ namespace TUGraz.VectoCore.OutputData.XML if (modelData.Exempted) { WeightingGroup = WeightingGroup.Unknown; } else { - WeightingGroup = DeclarationData.WeightingGroup.Lookup(modelData.VehicleData.VehicleClass, - false, 0.SI<Watt>()); + WeightingGroup = DeclarationData.WeightingGroup.Lookup( + modelData.VehicleData.VehicleClass, + modelData.VehicleData.VocationalVehicle, + false, + 0.SI<Watt>()); _weightingFactors = DeclarationData.WeightingFactors.Lookup(WeightingGroup); } diff --git a/VectoCore/VectoCore/Resources/Declaration/CO2Standards/MissionProfileWeights.csv b/VectoCore/VectoCore/Resources/Declaration/CO2Standards/MissionProfileWeights.csv index 2281d49835e286899287b396f1d381a0d150d7b4..1b214e4e3c7a54758857129de377caf31d34129a 100644 --- a/VectoCore/VectoCore/Resources/Declaration/CO2Standards/MissionProfileWeights.csv +++ b/VectoCore/VectoCore/Resources/Declaration/CO2Standards/MissionProfileWeights.csv @@ -6,12 +6,16 @@ Weighting Group , LongHaul , LongHaul EMS , Regional Delivery , Regional Delive 4-UD , 0/0 , 0/0 , 0/0 , 0/0 , 0.5/0.5 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 4-RD , 0.05/0.05 , 0/0 , 0.45/0.45 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 4-LH , 0.45/0.45 , 0/0 , 0.05/0.05 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 +4-V , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0.25/0.25 , 0.25/0.25 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 5-RD , 0.03/0.07 , 0/0 , 0.27/0.63 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 5-LH , 0.27/0.63 , 0/0 , 0.03/0.07 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 +5-V , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0.5/0.5 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 9-RD , 0.03/0.07 , 0/0 , 0.27/0.63 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 9-LH , 0.27/0.63 , 0/0 , 0.03/0.07 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 +9-V , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0.25/0.25 , 0.25/0.25 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 10-RD , 0.03/0.07 , 0/0 , 0.27/0.63 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 10-LH , 0.27/0.63 , 0/0 , 0.03/0.07 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 +10-V , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0.5/0.5 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 11 , 0/0 , 0/0 , 0.15/0.35 , 0/0 , 0/0 , 0/0 , 0.15/0.35 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 12 , 0/0 , 0/0 , 0.21/0.49 , 0/0 , 0/0 , 0/0 , 0.09/0.21 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 16 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 , 0.30/0.70 , 0/0 , 0/0 , 0/0 , 0/0 , 0/0 diff --git a/VectoCore/VectoCore/Resources/Declaration/CO2Standards/WeightingGroups.csv b/VectoCore/VectoCore/Resources/Declaration/CO2Standards/WeightingGroups.csv index 06858ae56426d0220b683ebf155c659ed836c513..62ddefa346f09657e3736c6329e9efd3a9f64caf 100644 --- a/VectoCore/VectoCore/Resources/Declaration/CO2Standards/WeightingGroups.csv +++ b/VectoCore/VectoCore/Resources/Declaration/CO2Standards/WeightingGroups.csv @@ -1,97 +1,105 @@ -Vehicle Group , Cabin Type , Engine Rated Power Min [kw] , Engine Rated Power Max [kW] , Weighting Group -1s , DayCab , 0 , 999999 , 1s -1s , SleeperCab , 0 , 999999 , 1s -1 , DayCab , 0 , 999999 , 1 -1 , SleeperCab , 0 , 999999 , 1 -2 , DayCab , 0 , 999999 , 2 -2 , SleeperCab , 0 , 999999 , 2 -3 , DayCab , 0 , 999999 , 3 -3 , SleeperCab , 0 , 999999 , 3 -4 , DayCab , 0 , 170 , 4-UD -4 , SleeperCab , 0 , 170 , 4-UD -4 , DayCab , 170 , 999999 , 4-RD -4 , SleeperCab , 170 , 265 , 4-RD -4 , SleeperCab , 265 , 999999 , 4-LH -5 , DayCab , 0 , 999999 , 5-RD -5 , SleeperCab , 0 , 265 , 5-RD -5 , SleeperCab , 265 , 999999 , 5-LH -9 , DayCab , 0 , 999999 , 9-RD -9 , SleeperCab , 0 , 999999 , 9-LH -10 , DayCab , 0 , 999999 , 10-RD -10 , SleeperCab , 0 , 999999 , 10-LH -11 , DayCab , 0 , 999999 , 11 -11 , SleeperCab , 0 , 999999 , 11 -12 , DayCab , 0 , 999999 , 12 -12 , SleeperCab , 0 , 999999 , 12 -16 , DayCab , 0 , 999999 , 16 -16 , SleeperCab , 0 , 999999 , 16 +Vehicle Group , Vocational , Cabin Type , Engine Rated Power Min [kw] , Engine Rated Power Max [kW] , Weighting Group +1s , 0 , DayCab , 0 , 999999 , 1s +1s , 0 , SleeperCab , 0 , 999999 , 1s +1 , 0 , DayCab , 0 , 999999 , 1 +1 , 0 , SleeperCab , 0 , 999999 , 1 +2 , 0 , DayCab , 0 , 999999 , 2 +2 , 0 , SleeperCab , 0 , 999999 , 2 +3 , 0 , DayCab , 0 , 999999 , 3 +3 , 0 , SleeperCab , 0 , 999999 , 3 +4 , 0 , DayCab , 0 , 170 , 4-UD +4 , 0 , SleeperCab , 0 , 170 , 4-UD +4 , 0 , DayCab , 170 , 999999 , 4-RD +4 , 0 , SleeperCab , 170 , 265 , 4-RD +4 , 0 , SleeperCab , 265 , 999999 , 4-LH +4 , 1 , DayCab , 0 , 999999 , 4-V +4 , 1 , SleeperCab , 0 , 999999 , 4-V +5 , 0 , DayCab , 0 , 999999 , 5-RD +5 , 0 , SleeperCab , 0 , 265 , 5-RD +5 , 0 , SleeperCab , 265 , 999999 , 5-LH +5 , 1 , DayCab , 0 , 999999 , 5-V +5 , 1 , SleeperCab , 0 , 999999 , 5-V +9 , 0 , DayCab , 0 , 999999 , 9-RD +9 , 0 , SleeperCab , 0 , 999999 , 9-LH +9 , 1 , DayCab , 0 , 999999 , 9-V +9 , 1 , SleeperCab , 0 , 999999 , 9-V +10 , 0 , DayCab , 0 , 999999 , 10-RD +10 , 0 , SleeperCab , 0 , 999999 , 10-LH +10 , 1 , DayCab , 0 , 999999 , 10-V +10 , 1 , SleeperCab , 0 , 999999 , 10-V +11 , 0 , DayCab , 0 , 999999 , 11 +11 , 0 , SleeperCab , 0 , 999999 , 11 +12 , 0 , DayCab , 0 , 999999 , 12 +12 , 0 , SleeperCab , 0 , 999999 , 12 +16 , 0 , DayCab , 0 , 999999 , 16 +16 , 0 , SleeperCab , 0 , 999999 , 16 # -51 , DayCab , 0 , 999999 , 51 -51 , SleeperCab , 0 , 999999 , 51 -52 , DayCab , 0 , 999999 , 52 -52 , SleeperCab , 0 , 999999 , 52 -53 , DayCab , 0 , 999999 , 53 -53 , SleeperCab , 0 , 999999 , 53 -54 , DayCab , 0 , 999999 , 54 -54 , SleeperCab , 0 , 999999 , 54 -55 , DayCab , 0 , 999999 , 55 -55 , SleeperCab , 0 , 999999 , 55 -56 , DayCab , 0 , 999999 , 56 -56 , SleeperCab , 0 , 999999 , 56 +51 , 0 , DayCab , 0 , 999999 , 51 +51 , 0 , SleeperCab , 0 , 999999 , 51 +52 , 0 , DayCab , 0 , 999999 , 52 +52 , 0 , SleeperCab , 0 , 999999 , 52 +53 , 0 , DayCab , 0 , 999999 , 53 +53 , 0 , SleeperCab , 0 , 999999 , 53 +54 , 0 , DayCab , 0 , 999999 , 54 +54 , 0 , SleeperCab , 0 , 999999 , 54 +55 , 0 , DayCab , 0 , 999999 , 55 +55 , 0 , SleeperCab , 0 , 999999 , 55 +56 , 0 , DayCab , 0 , 999999 , 56 +56 , 0 , SleeperCab , 0 , 999999 , 56 # -31a , DayCab , 0 , 999999 , 31a -31b1 , DayCab , 0 , 999999 , 31b1 -31b2 , DayCab , 0 , 999999 , 31b2 -31c , DayCab , 0 , 999999 , 31c -31d , DayCab , 0 , 999999 , 31d -31e , DayCab , 0 , 999999 , 31e -32a , DayCab , 0 , 999999 , 32a -32b , DayCab , 0 , 999999 , 32b -32c , DayCab , 0 , 999999 , 32c -32d , DayCab , 0 , 999999 , 32d -32e , DayCab , 0 , 999999 , 32e -32f , DayCab , 0 , 999999 , 32f -33a , DayCab , 0 , 999999 , 33a -33b1 , DayCab , 0 , 999999 , 33b1 -33b2 , DayCab , 0 , 999999 , 33b2 -33c , DayCab , 0 , 999999 , 33c -33d , DayCab , 0 , 999999 , 33d -33e , DayCab , 0 , 999999 , 33e -34a , DayCab , 0 , 999999 , 34a -34b , DayCab , 0 , 999999 , 34b -34c , DayCab , 0 , 999999 , 34c -34d , DayCab , 0 , 999999 , 34d -34e , DayCab , 0 , 999999 , 34e -34f , DayCab , 0 , 999999 , 34f -35a , DayCab , 0 , 999999 , 35a -35b1 , DayCab , 0 , 999999 , 35b1 -35b2 , DayCab , 0 , 999999 , 35b2 -35c , DayCab , 0 , 999999 , 35c -36a , DayCab , 0 , 999999 , 36a -36b , DayCab , 0 , 999999 , 36b -36c , DayCab , 0 , 999999 , 36c -36d , DayCab , 0 , 999999 , 36d -36e , DayCab , 0 , 999999 , 36e -36f , DayCab , 0 , 999999 , 36f -37a , DayCab , 0 , 999999 , 37a -37b1 , DayCab , 0 , 999999 , 37b1 -37b2 , DayCab , 0 , 999999 , 37b2 -37c , DayCab , 0 , 999999 , 37c -37d , DayCab , 0 , 999999 , 37d -37e , DayCab , 0 , 999999 , 37e -38a , DayCab , 0 , 999999 , 38a -38b , DayCab , 0 , 999999 , 38b -38c , DayCab , 0 , 999999 , 38c -38d , DayCab , 0 , 999999 , 38d -38e , DayCab , 0 , 999999 , 38e -38f , DayCab , 0 , 999999 , 38f -39a , DayCab , 0 , 999999 , 39a -39b1 , DayCab , 0 , 999999 , 39b1 -39b2 , DayCab , 0 , 999999 , 39b2 -39c , DayCab , 0 , 999999 , 39c -40a , DayCab , 0 , 999999 , 40a -40b , DayCab , 0 , 999999 , 40b -40c , DayCab , 0 , 999999 , 40c -40d , DayCab , 0 , 999999 , 40d -40e , DayCab , 0 , 999999 , 40e -40f , DayCab , 0 , 999999 , 40f \ No newline at end of file +31a , 0 , DayCab , 0 , 999999 , 31a +31b1 , 0 , DayCab , 0 , 999999 , 31b1 +31b2 , 0 , DayCab , 0 , 999999 , 31b2 +31c , 0 , DayCab , 0 , 999999 , 31c +31d , 0 , DayCab , 0 , 999999 , 31d +31e , 0 , DayCab , 0 , 999999 , 31e +32a , 0 , DayCab , 0 , 999999 , 32a +32b , 0 , DayCab , 0 , 999999 , 32b +32c , 0 , DayCab , 0 , 999999 , 32c +32d , 0 , DayCab , 0 , 999999 , 32d +32e , 0 , DayCab , 0 , 999999 , 32e +32f , 0 , DayCab , 0 , 999999 , 32f +33a , 0 , DayCab , 0 , 999999 , 33a +33b1 , 0 , DayCab , 0 , 999999 , 33b1 +33b2 , 0 , DayCab , 0 , 999999 , 33b2 +33c , 0 , DayCab , 0 , 999999 , 33c +33d , 0 , DayCab , 0 , 999999 , 33d +33e , 0 , DayCab , 0 , 999999 , 33e +34a , 0 , DayCab , 0 , 999999 , 34a +34b , 0 , DayCab , 0 , 999999 , 34b +34c , 0 , DayCab , 0 , 999999 , 34c +34d , 0 , DayCab , 0 , 999999 , 34d +34e , 0 , DayCab , 0 , 999999 , 34e +34f , 0 , DayCab , 0 , 999999 , 34f +35a , 0 , DayCab , 0 , 999999 , 35a +35b1 , 0 , DayCab , 0 , 999999 , 35b1 +35b2 , 0 , DayCab , 0 , 999999 , 35b2 +35c , 0 , DayCab , 0 , 999999 , 35c +36a , 0 , DayCab , 0 , 999999 , 36a +36b , 0 , DayCab , 0 , 999999 , 36b +36c , 0 , DayCab , 0 , 999999 , 36c +36d , 0 , DayCab , 0 , 999999 , 36d +36e , 0 , DayCab , 0 , 999999 , 36e +36f , 0 , DayCab , 0 , 999999 , 36f +37a , 0 , DayCab , 0 , 999999 , 37a +37b1 , 0 , DayCab , 0 , 999999 , 37b1 +37b2 , 0 , DayCab , 0 , 999999 , 37b2 +37c , 0 , DayCab , 0 , 999999 , 37c +37d , 0 , DayCab , 0 , 999999 , 37d +37e , 0 , DayCab , 0 , 999999 , 37e +38a , 0 , DayCab , 0 , 999999 , 38a +38b , 0 , DayCab , 0 , 999999 , 38b +38c , 0 , DayCab , 0 , 999999 , 38c +38d , 0 , DayCab , 0 , 999999 , 38d +38e , 0 , DayCab , 0 , 999999 , 38e +38f , 0 , DayCab , 0 , 999999 , 38f +39a , 0 , DayCab , 0 , 999999 , 39a +39b1 , 0 , DayCab , 0 , 999999 , 39b1 +39b2 , 0 , DayCab , 0 , 999999 , 39b2 +39c , 0 , DayCab , 0 , 999999 , 39c +40a , 0 , DayCab , 0 , 999999 , 40a +40b , 0 , DayCab , 0 , 999999 , 40b +40c , 0 , DayCab , 0 , 999999 , 40c +40d , 0 , DayCab , 0 , 999999 , 40d +40e , 0 , DayCab , 0 , 999999 , 40e +40f , 0 , DayCab , 0 , 999999 , 40f \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index 0f372d63cc9893f6daf835fc09866367d9ebbed5..88e61cfdccd3e8612feffea501dd7108322339e9 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -2428,54 +2428,65 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration } [ - TestCase(VehicleClass.Class1, true, 169.9, WeightingGroup.Group1), - TestCase(VehicleClass.Class1, false, 265, WeightingGroup.Group1), - TestCase(VehicleClass.Class2, true, 169.9, WeightingGroup.Group2), - TestCase(VehicleClass.Class2, false, 265, WeightingGroup.Group2), - TestCase(VehicleClass.Class3, true, 169.9, WeightingGroup.Group3), - TestCase(VehicleClass.Class3, false, 265, WeightingGroup.Group3), - - - TestCase(VehicleClass.Class4, true, 169.9, WeightingGroup.Group4UD), - TestCase(VehicleClass.Class4, false, 169.9, WeightingGroup.Group4UD), - TestCase(VehicleClass.Class4, false, 170, WeightingGroup.Group4RD), - TestCase(VehicleClass.Class4, true, 170, WeightingGroup.Group4RD), - TestCase(VehicleClass.Class4, true, 264.9, WeightingGroup.Group4RD), - TestCase(VehicleClass.Class4, true, 265, WeightingGroup.Group4LH), - - TestCase(VehicleClass.Class5, false, 169.9, WeightingGroup.Group5RD), - TestCase(VehicleClass.Class5, false, 170, WeightingGroup.Group5RD), - TestCase(VehicleClass.Class5, false, 264.9, WeightingGroup.Group5RD), - TestCase(VehicleClass.Class5, false, 265, WeightingGroup.Group5RD), - TestCase(VehicleClass.Class5, true, 264.9, WeightingGroup.Group5RD), - TestCase(VehicleClass.Class5, true, 265, WeightingGroup.Group5LH), - - TestCase(VehicleClass.Class9, false, 169.9, WeightingGroup.Group9RD), - TestCase(VehicleClass.Class9, false, 264.9, WeightingGroup.Group9RD), - TestCase(VehicleClass.Class9, false, 265, WeightingGroup.Group9RD), - TestCase(VehicleClass.Class9, true, 169.9, WeightingGroup.Group9LH), - TestCase(VehicleClass.Class9, true, 264.9, WeightingGroup.Group9LH), - TestCase(VehicleClass.Class9, true, 265, WeightingGroup.Group9LH), - - TestCase(VehicleClass.Class10, false, 169.9, WeightingGroup.Group10RD), - TestCase(VehicleClass.Class10, false, 264.9, WeightingGroup.Group10RD), - TestCase(VehicleClass.Class10, false, 265, WeightingGroup.Group10RD), - TestCase(VehicleClass.Class10, true, 169.9, WeightingGroup.Group10LH), - TestCase(VehicleClass.Class10, true, 264.9, WeightingGroup.Group10LH), - TestCase(VehicleClass.Class10, true, 265, WeightingGroup.Group10LH), - - TestCase(VehicleClass.Class11, true, 169.9, WeightingGroup.Group11), - TestCase(VehicleClass.Class11, false, 265, WeightingGroup.Group11), - TestCase(VehicleClass.Class12, true, 169.9, WeightingGroup.Group12), - TestCase(VehicleClass.Class12, false, 265, WeightingGroup.Group12), - TestCase(VehicleClass.Class16, true, 169.9, WeightingGroup.Group16), - TestCase(VehicleClass.Class16, false, 265, WeightingGroup.Group16), + TestCase(VehicleClass.Class1, false, true, 169.9, WeightingGroup.Group1), + TestCase(VehicleClass.Class1, false, false, 265, WeightingGroup.Group1), + TestCase(VehicleClass.Class2, false, true, 169.9, WeightingGroup.Group2), + TestCase(VehicleClass.Class2, false, false, 265, WeightingGroup.Group2), + TestCase(VehicleClass.Class3, false, true, 169.9, WeightingGroup.Group3), + TestCase(VehicleClass.Class3, false, false, 265, WeightingGroup.Group3), + + + TestCase(VehicleClass.Class4, false, true, 169.9, WeightingGroup.Group4UD), + TestCase(VehicleClass.Class4, false, false, 169.9, WeightingGroup.Group4UD), + TestCase(VehicleClass.Class4, false, false, 170, WeightingGroup.Group4RD), + TestCase(VehicleClass.Class4, false, true, 170, WeightingGroup.Group4RD), + TestCase(VehicleClass.Class4, false, true, 264.9, WeightingGroup.Group4RD), + TestCase(VehicleClass.Class4, false, true, 265, WeightingGroup.Group4LH), + TestCase(VehicleClass.Class4, true, true, 265, WeightingGroup.Group4V), + TestCase(VehicleClass.Class4, true, false, 265, WeightingGroup.Group4V), + + TestCase(VehicleClass.Class5, false, false, 169.9, WeightingGroup.Group5RD), + TestCase(VehicleClass.Class5, false, false, 170, WeightingGroup.Group5RD), + TestCase(VehicleClass.Class5, false, false, 264.9, WeightingGroup.Group5RD), + TestCase(VehicleClass.Class5, false, false, 265, WeightingGroup.Group5RD), + TestCase(VehicleClass.Class5, false, true, 264.9, WeightingGroup.Group5RD), + TestCase(VehicleClass.Class5, false, true, 265, WeightingGroup.Group5LH), + TestCase(VehicleClass.Class5, true, true, 265, WeightingGroup.Group5V), + TestCase(VehicleClass.Class5, true, false, 265, WeightingGroup.Group5V), + + TestCase(VehicleClass.Class9, false, false, 169.9, WeightingGroup.Group9RD), + TestCase(VehicleClass.Class9, false, false, 264.9, WeightingGroup.Group9RD), + TestCase(VehicleClass.Class9, false, false, 265, WeightingGroup.Group9RD), + TestCase(VehicleClass.Class9, false, true, 169.9, WeightingGroup.Group9LH), + TestCase(VehicleClass.Class9, false, true, 264.9, WeightingGroup.Group9LH), + TestCase(VehicleClass.Class9, false, true, 265, WeightingGroup.Group9LH), + TestCase(VehicleClass.Class9, true, true, 265, WeightingGroup.Group9V), + TestCase(VehicleClass.Class9, true, false, 265, WeightingGroup.Group9V), + + TestCase(VehicleClass.Class10, false, false, 169.9, WeightingGroup.Group10RD), + TestCase(VehicleClass.Class10, false, false, 264.9, WeightingGroup.Group10RD), + TestCase(VehicleClass.Class10, false, false, 265, WeightingGroup.Group10RD), + TestCase(VehicleClass.Class10, false, true, 169.9, WeightingGroup.Group10LH), + TestCase(VehicleClass.Class10, false, true, 264.9, WeightingGroup.Group10LH), + TestCase(VehicleClass.Class10, false, true, 265, WeightingGroup.Group10LH), + TestCase(VehicleClass.Class10, true, true, 265, WeightingGroup.Group10V), + TestCase(VehicleClass.Class10, true, false, 265, WeightingGroup.Group10V), + + TestCase(VehicleClass.Class11, false, true, 169.9, WeightingGroup.Group11), + TestCase(VehicleClass.Class11, false, false, 265, WeightingGroup.Group11), + TestCase(VehicleClass.Class12, false, true, 169.9, WeightingGroup.Group12), + TestCase(VehicleClass.Class12, false, false, 265, WeightingGroup.Group12), + TestCase(VehicleClass.Class16, false, true, 169.9, WeightingGroup.Group16), + TestCase(VehicleClass.Class16, false, false, 265, WeightingGroup.Group16), ] public void TestWeightingGroupLookup( - VehicleClass vehicleGroup, bool sleeperCab, double ratedPowerkWm, WeightingGroup expectedWeightingGroup) + VehicleClass vehicleGroup, bool vocational, bool sleeperCab, double ratedPowerkWm, WeightingGroup expectedWeightingGroup) { var wGroup = DeclarationData.WeightingGroup.Lookup( - vehicleGroup, sleeperCab, ratedPowerkWm.SI(Unit.SI.Kilo.Watt).Cast<Watt>()); + vehicleGroup, + vocational, + sleeperCab, + ratedPowerkWm.SI(Unit.SI.Kilo.Watt).Cast<Watt>()); Assert.AreEqual(expectedWeightingGroup, wGroup); }