diff --git a/VectoCore/VectoCore/Models/Declaration/Auxiliaries/SteeringPump.cs b/VectoCore/VectoCore/Models/Declaration/Auxiliaries/SteeringPump.cs index 905f1331c1dd7aa02bd78ace3131d92663fce7d2..5324916f007d9e1d7b5758e7bc22bfe2483c61f5 100644 --- a/VectoCore/VectoCore/Models/Declaration/Auxiliaries/SteeringPump.cs +++ b/VectoCore/VectoCore/Models/Declaration/Auxiliaries/SteeringPump.cs @@ -60,8 +60,8 @@ namespace TUGraz.VectoCore.Models.Declaration.Auxiliaries var baseLine = _baseLookup.Lookup(mission, hdvClass); var powerMech = new SteeringPumpValues<Watt>(0.SI<Watt>(), 0.SI<Watt>(), 0.SI<Watt>()); var powerEl = new SteeringPumpValues<Watt>(0.SI<Watt>(), 0.SI<Watt>(), 0.SI<Watt>()); - var factorsMech = new SteeringPumpValues<double>(0, 0, 0); - var factorsEl = new SteeringPumpValues<double>(0, 0, 0); + var factors = new SteeringPumpValues<double>(0, 0, 0); + //var factorsEl = new SteeringPumpValues<double>(0, 0, 0); var axleCount = 0; var numberMech = 0; var numberEl = 0; @@ -80,40 +80,34 @@ namespace TUGraz.VectoCore.Models.Declaration.Auxiliaries var axles = _axleLookup.Lookup(mission, axleCount); var f = _techLookup.Lookup(technology, mission); - + factors.UnloadedFriction += f.UnloadedFriction; + factors.Banking += f.Banking; + factors.Steering += f.Steering; if (_techLookup.IsFullyElectric(technology)) { numberEl++; powerEl.UnloadedFriction += baseLine.UnloadedFriction * axles.UnloadedFriction; powerEl.Banking += baseLine.Banking * axles.Banking; powerEl.Steering += baseLine.Steering * axles.Steering; - - factorsEl.UnloadedFriction += f.UnloadedFriction; - factorsEl.Banking += f.Banking; - factorsEl.Steering += f.Steering; } else { numberMech++; powerMech.UnloadedFriction += baseLine.UnloadedFriction * axles.UnloadedFriction; powerMech.Banking += baseLine.Banking * axles.Banking; powerMech.Steering += baseLine.Steering * axles.Steering; - - factorsMech.UnloadedFriction += f.UnloadedFriction; - factorsMech.Banking += f.Banking; - factorsMech.Steering += f.Steering; } } if (numberMech > 0) { - powerMech.UnloadedFriction *= factorsMech.UnloadedFriction / numberMech; - powerMech.Banking *= factorsMech.Banking / numberMech; - powerMech.Steering *= factorsMech.Steering / numberMech; + powerMech.UnloadedFriction *= factors.UnloadedFriction / axleCount; + powerMech.Banking *= factors.Banking / axleCount; + powerMech.Steering *= factors.Steering / axleCount; } if (numberEl > 0) { - powerEl.UnloadedFriction *= factorsEl.UnloadedFriction / numberEl; - powerEl.Banking *= factorsEl.Banking / numberEl; - powerEl.Steering *= factorsEl.Steering / numberEl; + powerEl.UnloadedFriction *= factors.UnloadedFriction / axleCount; + powerEl.Banking *= factors.Banking / axleCount; + powerEl.Steering *= factors.Steering / axleCount; } return (powerMech.UnloadedFriction + powerMech.Banking + powerMech.Steering, diff --git a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs index ef9de6a8ab16130f0fdfaaff6993ccdbdfd2f436..4b13675932cf41fef206649d4c8746c04c474c0c 100644 --- a/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs +++ b/VectoCore/VectoCoreTest/Models/Declaration/DeclarationDataTest.cs @@ -523,60 +523,76 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration } [ - TestCase(MissionType.LongHaul, VehicleClass.Class2, 370, "Fixed displacement", null, null, null), - TestCase(MissionType.LongHaul, VehicleClass.Class4, 610, "Fixed displacement", null, null, null), - TestCase(MissionType.LongHaul, VehicleClass.Class5, 720, "Fixed displacement", null, null, null), - TestCase(MissionType.LongHaul, VehicleClass.Class9, 720, "Fixed displacement", null, null, null), - TestCase(MissionType.LongHaul, VehicleClass.Class10, 570, "Fixed displacement", null, null, null), - TestCase(MissionType.LongHaul, VehicleClass.Class11, 720, "Fixed displacement", null, null, null), - TestCase(MissionType.LongHaul, VehicleClass.Class12, 570, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class1s, 280, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class1, 280, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 340, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class3, 370, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class4, 570, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class5, 670, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class9, 590, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class10, 570, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class11, 590, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class12, 570, "Fixed displacement", null, null, null), - TestCase(MissionType.UrbanDelivery, VehicleClass.Class1s, 270, "Fixed displacement", null, null, null), - TestCase(MissionType.UrbanDelivery, VehicleClass.Class1, 270, "Fixed displacement", null, null, null), - TestCase(MissionType.UrbanDelivery, VehicleClass.Class2, 310, "Fixed displacement", null, null, null), - TestCase(MissionType.UrbanDelivery, VehicleClass.Class3, 350, "Fixed displacement", null, null, null), - TestCase(MissionType.UrbanDelivery, VehicleClass.Class5, 620, "Fixed displacement", null, null, null), - TestCase(MissionType.MunicipalUtility, VehicleClass.Class4, 510, "Fixed displacement", null, null, null), - TestCase(MissionType.MunicipalUtility, VehicleClass.Class9, 510, "Fixed displacement", null, null, null), - TestCase(MissionType.MunicipalUtility, VehicleClass.Class11, 510, "Fixed displacement", null, null, null), - TestCase(MissionType.Construction, VehicleClass.Class11, 770, "Fixed displacement", null, null, null), - TestCase(MissionType.Construction, VehicleClass.Class12, 770, "Fixed displacement", null, null, null), - TestCase(MissionType.Construction, VehicleClass.Class16, 770, "Fixed displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 325.5, "Fixed displacement with elec. control", null, + TestCase(MissionType.LongHaul, VehicleClass.Class2, 370, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.LongHaul, VehicleClass.Class4, 610, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.LongHaul, VehicleClass.Class5, 720, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.LongHaul, VehicleClass.Class9, 720, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.LongHaul, VehicleClass.Class10, 570, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.LongHaul, VehicleClass.Class11, 720, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.LongHaul, VehicleClass.Class12, 570, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class1s, 280, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class1, 280, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 340, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class3, 370, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class4, 570, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class5, 670, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class9, 590, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class10, 570, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class11, 590, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class12, 570, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.UrbanDelivery, VehicleClass.Class1s, 270, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.UrbanDelivery, VehicleClass.Class1, 270, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.UrbanDelivery, VehicleClass.Class2, 310, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.UrbanDelivery, VehicleClass.Class3, 350, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.UrbanDelivery, VehicleClass.Class5, 620, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.MunicipalUtility, VehicleClass.Class4, 510, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.MunicipalUtility, VehicleClass.Class9, 510, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.MunicipalUtility, VehicleClass.Class11, 510, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.Construction, VehicleClass.Class11, 770, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.Construction, VehicleClass.Class12, 770, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.Construction, VehicleClass.Class16, 770, 0, "Fixed displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 325.5, 0, "Fixed displacement with elec. control", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 289, "Dual displacement", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 255, "Variable displacement mech. controlled", null, + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 289, 0, "Dual displacement", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 255, 0, "Variable displacement mech. controlled", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 204, "Variable displacement elec. controlled", null, + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 204, 0, "Variable displacement elec. controlled", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 92.87, "Electric", null, null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 665, "Fixed displacement", "Fixed displacement", null, + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 92.87, 0, "Electric", null, null, null), + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 665, 0, "Fixed displacement", "Fixed displacement", null, null), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 1295, "Fixed displacement", "Fixed displacement", + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 1295, 0, "Fixed displacement", "Fixed displacement", "Fixed displacement", "Fixed displacement"), - TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 1021.5, "Dual displacement", - "Variable displacement mech. controlled", "Fixed displacement with elec. control", + TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 1021.5, 0, + "Dual displacement", + "Variable displacement mech. controlled", + "Fixed displacement with elec. control", "Variable displacement elec. controlled"), + + //Electric and Mechanic + TestCase(MissionType.UrbanDelivery, VehicleClass.Class5, 852.048, 768.72, + "Fixed displacement", + "Dual displacement", + "Electric driven pump", + "Full electric steering gear"), + TestCase(MissionType.UrbanDelivery, VehicleClass.Class5, 0, 262.386 + , + "Full electric steering gear", + "Full electric steering gear", + "Full electric steering gear", + "Full electric steering gear"), ] - public void Aux_SteeringPumpLookupValues(MissionType mission, VehicleClass hdvClass, double expected, string axle1, + public void Aux_SteeringPumpLookupValues(MissionType mission, VehicleClass hdvClass, double expectedMech, double expectedElectric, string axle1, string axle2, string axle3, string axle4) - { - AssertHelper.AreRelativeEqual(expected, - DeclarationData.SteeringPump.Lookup(mission, hdvClass, - new[] { axle1, axle2, axle3, axle4 }.TakeWhile(a => a != null).ToArray()).mechanicalPumps); - } + { + var result = DeclarationData.SteeringPump.Lookup(mission, hdvClass, + new[] { axle1, axle2, axle3, axle4 }.TakeWhile(a => a != null).ToArray()); + AssertHelper.AreRelativeEqual(expectedMech, result.mechanicalPumps); + AssertHelper.AreRelativeEqual(expectedElectric, result.electricPumps); + } [TestCase] public void Aux_SteeringpumpMultipleLookups()