Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 6756fb9b authored by Michael KRISPER's avatar Michael KRISPER Committed by Markus Quaritsch
Browse files

Pull request #149: Dev/testcases updated testcases

Merge in VECTO/vecto-dev from VECTO/mk_vecto-dev:dev/testcases to develop

* commit '332ddfab':
  corrected test cases for P2 Hybrid Group 5 BatterySystem 2 DriveCycle  Interurban Short
  HybridResultEntry Improved DebuggerDisplay
  HybridStrategy.SelectBestOption: added emergency shift also for upshift
  HybridStrategy.DoSelectBestOption: When Braking search with MaxBY MechanicalAssistPower instead of MinBy
  added check for EngineSpeedTooHigh when shifting down
  updated testcases for TestFullCycleModDataIntegrityAT citybus AT Serial and Parallel: ShiftTime set to 1 second (instead of 0 which is wrong)
  removed check for ResponseEngineSpeedTooHigh from DistanceRun again
  removed check for ResponseEngineSpeedToHigh from DistanceRun again.
  updated testcases
  Updated Test Aux_SteeringPumpLookupValues
  Updated 4 Testcases: TestSimulationExemptedVehicle
parents 6d6f176d 332ddfab
Branches
Tags
No related merge requests found
Showing
with 209 additions and 47 deletions
......@@ -33,7 +33,7 @@ namespace TUGraz.VectoCommon.Models {
public bool ProhibitGearshift { get; set; }
}
[DebuggerDisplay("{U}: {Score} - G{Gear}")]
[DebuggerDisplay("{U,nq}: {Score,nq} - G{Gear,nq} - {IgnoreReason,nq}")]
public class HybridResultEntry
{
public Second SimulationInterval;
......
......@@ -32,6 +32,7 @@
using System;
using System.Collections.Generic;
using System.Data;
using System.Diagnostics;
using System.Linq;
using TUGraz.VectoCommon.Models;
using TUGraz.VectoCommon.Utils;
......@@ -156,6 +157,7 @@ namespace TUGraz.VectoCore.Models.Declaration
}
}
[DebuggerDisplay("UnloadedFriction = {UnloadedFriction,nq}, Banking = {Banking,nq}, Steering = {Steering,nq}")]
private struct SteeringPumpValues<T>
{
public T UnloadedFriction;
......
......@@ -1484,6 +1484,22 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
}
}
if ((!prohibitGearshift || AllowEmergencyShift) && (best.IgnoreReason.EngineSpeedAboveUpshift() || best.IgnoreReason.EngineSpeedTooHigh())) {
best = DoSelectBestOption(eval, absTime, dt, outTorque, outAngularVelocity, dryRun, currentGear);
if (best.IgnoreReason.EngineSpeedAboveUpshift()) {
//try upshift
var newEval = new List<HybridResultEntry>();
EvaluateConfigsForGear(
absTime, dt, outTorque, outAngularVelocity, GearList.Successor(best.Gear),
AllowICEOff(absTime), newEval,
best.Setting.MechanicalAssistPower.First().Key, dryRun);
if (newEval.Count > 0) {
best = DoSelectBestOption(newEval, absTime, dt, outTorque, outAngularVelocity, dryRun,
currentGear);
}
}
}
best.SimulationInterval = dt;
best.ProhibitGearshift = prohibitGearshift;
return best;
......@@ -1528,7 +1544,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
}
best = eval.Where(x => !double.IsNaN(x.Score)).OrderBy(x => x.Score).FirstOrDefault();
if (best != null) {
if (best != null && !(best.Gear != currentGear && best.IgnoreReason.EngineSpeedTooHigh())) {
return best;
}
......@@ -1598,13 +1614,21 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Strategies
if (filtered3.Length == 0) {
filtered3 = filtered2;
}
var filteredCurrentGear = filtered3.Where(x => x.Gear.Equals(currentGear)).ToArray();
if (filteredCurrentGear.Length > 0) {
if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake) {
best = filteredCurrentGear.MaxBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
} else {
best = filteredCurrentGear.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
}
return best;
}
if (DataBus.DriverInfo.DrivingAction == DrivingAction.Brake) {
best = filtered3.MaxBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
} else {
best = filtered3.MinBy(x => x.Setting.MechanicalAssistPower.Sum(e => e.Value?.Item2 ?? 0.SI<NewtonMeter>()));
}
if (best != null) {
return best;
}
......
......@@ -130,18 +130,8 @@ namespace TUGraz.VectoCore.Tests.Integration
ActualModalData = true
};
var jobContainer = new JobContainer(new MockSumWriter());
List<IVectoRun> runs;
Assert.That(() => runs = factory.SimulationRuns().ToList(),
Throws.TypeOf<VectoException>()
.And.Message.EqualTo("Node MaxNetPower1 not found in input data"));
Assert.Inconclusive("Exempted Vehicle");
//Assert.AreEqual(numRuns, runs.Count);
//foreach (var run in runs) {
// jobContainer.AddRun(run);
//}
//jobContainer.AddRuns(factory);
jobContainer.AddRuns(factory);
Assert.That(jobContainer.Runs.Count, Is.EqualTo(numRuns));
jobContainer.Execute();
jobContainer.WaitFinished();
......
......@@ -567,6 +567,7 @@ namespace TUGraz.VectoCore.Tests.Integration.Hybrid
TestCase(Group5TestJob_BatterySystem2, 7, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Suburban"),
TestCase(Group5TestJob_BatterySystem2, 8, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Urban"),
TestCase(Group5TestJob_BatterySystem2, 9, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle UrbanDelivery"),
TestCase(Group5TestJob_BatterySystem2, 10, TestName = "P2 Hybrid Group 5 BatterySystem 2 DriveCycle Interurban Short"),
]
public void P2HybridGroup5DriveCycle_BatterySystem(string jobFile, int cycleIdx)
......
......@@ -557,7 +557,7 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 204, "Variable displacement elec. controlled", null,
null,
null),
TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 132.6714, "Electric", 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,
null),
TestCase(MissionType.RegionalDelivery, VehicleClass.Class2, 1295, "Fixed displacement", "Fixed displacement",
......
......@@ -869,9 +869,11 @@ namespace TUGraz.VectoCore.Tests.Models.Declaration
[TestCase(@"E:\QUAM\Workspace\VECTO-Bugreports\BugReportTests\Bugreport Jobs\20190307_VECTO-904_Extrapolation\OM-18173493.xml")]
//[TestCase(@"E:\QUAM\Workspace\VECTO_DEV_Hybrid\Generic Vehicles\Declaration Mode\Group5_Tractor_4x2\Class5_Tractor_DECL.xml")]
[Ignore("Confidential data")]
public void ComputeShiftPolygonXML(string xmlJob)
{
if (!File.Exists(xmlJob)) {
Assert.Inconclusive("Confidential File not found. Test cannot run without file.");
}
var inputData = xmlInputReader.CreateDeclaration(xmlJob);
var dao = new DeclarationDataAdapterHeavyLorry();
......
......@@ -340,19 +340,15 @@ namespace TUGraz.VectoCore.Tests.Models
}
[TestCase()]
[TestCase, Ignore("Engineering XML not maintained")]
public void ReadEngineeringXMLDualFuel()
{
var inputDataProvider = xmlInputReader.CreateEngineering(EngineeringDualFuelWHRVehicle);
var dao = new EngineeringModeVectoRunDataFactory(inputDataProvider);
VectoRunData[] runs;
Assert.That(() => runs = dao.NextRun().ToArray(),
Throws.TypeOf<VectoException>()
.And.Message.EqualTo("Node IdlingSpeed not found in input data"));
//Assert.AreEqual(1, runs.Length);
//Assert.IsTrue(runs.All(x => x.EngineData.ElectricalWHR?.WHRMap != null));
Assert.Inconclusive("Engineering Mode XML");
var runs = dao.NextRun().ToArray();
Assert.AreEqual(1, runs.Length);
Assert.IsTrue(runs.All(x => x.EngineData.ElectricalWHR?.WHRMap != null));
}
}
}
{
"Header": {
"CreatedBy": "",
"Date": "2020-09-07T15:28:30.2818342Z",
"Date": "2022-01-25T08:14:35.8122252Z",
"AppVersion": "3",
"FileVersion": 1
},
"Body": {
"SavedInDeclMode": false,
"REESSType": "Battery",
"Model": "Generic Battery",
"Capacity": 14.0,
"SOC_min": 20.0,
......
{
"Header": {
"CreatedBy": "",
"Date": "2020-09-07T15:28:30.2818342Z",
"Date": "2022-01-25T08:14:43.7728204Z",
"AppVersion": "3",
"FileVersion": 1
},
"Body": {
"SavedInDeclMode": false,
"REESSType": "Battery",
"Model": "Generic Battery",
"Capacity": 8.0,
"SOC_min": 20.0,
......
<s>,<v>,<grad>,<stop>
54389,0,2.756,28
54390,21,2.997,0
54400,21,3.145,0
54410,21,3.293,0
54420,21,3.44,0
54430,21,3.588,0
54440,21,3.736,0
54450,21,3.883,0
54460,21,4.031,0
54468,18,4.031,0
54470,18,4.179,0
54480,18,4.326,0
54490,18,4.474,0
54500,18,4.622,0
54510,18,4.77,0
54520,18,4.918,0
54530,18,5.066,0
54540,18,5.214,0
54550,18,5.361,0
54560,18,5.509,0
54570,18,5.613,0
54640,18,5.818,0
54650,18,6.318,0
54660,18,6.818,0
54664,54,6.818,0
54670,54,7.318,0
54680,54,7.818,0
54690,54,8.318,0
54700,54,8.818,0
54710,54,9.318,0
54720,54,9.818,0
54730,54,10.318,0
54740,54,10.818,0
54750,54,11.318,0
54760,54,11.818,0
54770,54,12.318,0
54780,54,12.818,0
54790,54,13.118,0
54800,54,13.261,0
54810,54,13.404,0
54820,54,13.546,0
54830,54,13.688,0
54840,54,13.558,0
54850,54,13.058,0
54860,54,12.558,0
54870,54,12.058,0
54880,54,11.558,0
54890,54,11.058,0
54900,54,10.558,0
54910,54,10.058,0
54920,54,9.558,0
54930,54,9.058,0
54940,54,8.558,0
54950,54,8.714,0
54960,54,8.953,0
54970,54,9.192,0
54980,54,9.431,0
54990,54,9.67,0
55000,54,9.909,0
55010,54,10.148,0
55020,54,10.387,0
55030,54,10.626,0
55040,54,10.865,0
55060,54,10.73,0
55080,54,10.567,0
55100,54,10.405,0
55120,54,10.242,0
55140,54,10.032,0
55150,54,9.712,0
55160,54,9.392,0
55170,54,9.071,0
55180,54,8.751,0
55190,54,8.431,0
55200,54,8.111,0
55210,54,7.79,0
55220,54,7.47,0
55230,54,7.149,0
55240,54,6.829,0
55450,54,6.983,0
55460,54,7.182,0
55470,54,7.38,0
55480,54,7.577,0
55490,54,7.775,0
55500,54,7.972,0
55510,54,8.169,0
55520,54,8.367,0
55530,54,8.565,0
55540,54,8.762,0
55550,54,8.96,0
55560,54,9.157,0
55570,54,9.355,0
55580,54,9.553,0
55590,54,9.75,0
55600,54,9.948,0
55610,54,10.145,0
55620,54,10.343,0
55630,54,10.541,0
55640,54,10.738,0
56100,54,10.635,0
56160,54,10.531,0
56220,54,10.43,0
56620,54,10.172,0
56630,54,9.992,0
56640,54,9.812,0
56650,54,9.632,0
56660,54,9.452,0
56670,54,9.272,0
56680,54,9.092,0
56690,54,8.912,0
56700,54,8.732,0
56710,54,8.551,0
56720,54,8.371,0
56730,54,8.191,0
56740,54,8.011,0
56750,54,7.831,0
56760,54,7.651,0
56770,54,7.471,0
56780,24,7.291,0
56790,54,7.111,0
56800,54,6.931,0
56810,54,6.805,0
57190,54,6.628,0
57200,54,6.5,0
57210,54,6.372,0
57220,54,6.244,0
57230,54,6.116,0
57240,54,5.988,0
57250,54,5.86,0
57260,54,5.732,0
57270,54,5.604,0
57280,54,5.477,0
57290,54,5.349,0
57300,54,5.221,0
57310,54,5.093,0
57320,54,4.965,0
57330,54,4.837,0
57340,54,4.709,0
57350,54,4.581,0
57360,54,4.453,0
57370,54,4.325,0
57430,54,4.056,0
57440,54,3.828,0
57480,54,3.949,0
57506,34,3.949,0
57510,34,4.06,0
57519,0,4.06,40
\ No newline at end of file
......@@ -58,7 +58,8 @@
"RegionalDelivery",
"Suburban",
"Urban",
"UrbanDelivery"
"UrbanDelivery",
"Interurban_Short.vdri"
]
}
}
\ No newline at end of file
......@@ -18,6 +18,8 @@ urn:tugraz:ivt:VectoAPI:DeclarationDefinitions:v2.1 E:\QUAM\Workspace\VECTO_quam
<CurbMassChassis>7100</CurbMassChassis>
<GrossVehicleMass>40000</GrossVehicleMass>
<ZeroEmissionVehicle>false</ZeroEmissionVehicle>
<MaxNetPower1>30000</MaxNetPower1>
<MaxNetPower2>20000</MaxNetPower2>
<HybridElectricHDV>false</HybridElectricHDV>
<DualFuelVehicle>true</DualFuelVehicle>
</v2.0:Vehicle>
......
......@@ -35,7 +35,7 @@
}
],
"TqReserve": 0.0,
"ShiftTime": 0.0,
"ShiftTime": 1.0,
"StartTqReserve": 0.0,
"StartSpeed": 2.0,
"StartAcc": 0.6,
......@@ -47,8 +47,8 @@
"Inertia": 0.0,
"ShiftPolygon": "AT-Shift.vgbs"
},
"DownshiftAferUpshiftDelay": 0.0,
"UpshiftAfterDownshiftDelay": 0.0,
"DownshiftAferUpshiftDelay": 1.0,
"UpshiftAfterDownshiftDelay": 1.0,
"UpshiftMinAcceleration": 0.0
}
}
\ No newline at end of file
......@@ -53,7 +53,7 @@
}
],
"TqReserve": 0.0,
"ShiftTime": 0.0,
"ShiftTime": 1.0,
"StartTqReserve": 0.0,
"StartSpeed": 2.0,
"StartAcc": 0.6,
......@@ -65,8 +65,8 @@
"Inertia": 0.0,
"ShiftPolygon": "AT-Shift.vgbs"
},
"DownshiftAferUpshiftDelay": 0.0,
"UpshiftAfterDownshiftDelay": 0.0,
"DownshiftAferUpshiftDelay": 1.0,
"UpshiftAfterDownshiftDelay": 1.0,
"UpshiftMinAcceleration": 0.0
}
}
\ No newline at end of file
......@@ -285,7 +285,7 @@ namespace TUGraz.VectoCore.Tests.XML
Assert.AreEqual(1.0, inputDataProvider.JobInputData.Vehicle.Components.RetarderInputData.Ratio);
}
[TestCase]
[TestCase, Ignore("Engineering XML not maintained")]
public void TestXMLPowertrainGenerationReferencedFile()
{
var fileWriter = new FileOutputWriter("foo");
......@@ -301,10 +301,7 @@ namespace TUGraz.VectoCore.Tests.XML
Throws.TypeOf<VectoException>()
.And.Message.EqualTo("Node IdlingSpeed not found in input data"));
Assert.Inconclusive("Engineering Mode XML");
//Assert.AreEqual(6, jobContainer.Runs.Count);
Assert.AreEqual(6, jobContainer.Runs.Count);
}
......
......@@ -477,7 +477,7 @@ namespace TUGraz.VectoCore.Tests.XML
}
[TestCase]
[TestCase, Ignore("Engineering XML not maintained")]
public void TestXMLPowertrainGenerationSingleFile()
{
var fileWriter = new FileOutputWriter("foo");
......@@ -495,9 +495,9 @@ namespace TUGraz.VectoCore.Tests.XML
jobContainer.Execute();
Assert.Inconclusive("Engineering Mode XML");
//Assert.Inconclusive("Engineering Mode XML");
//Assert.AreEqual(6, jobContainer.Runs.Count);
Assert.AreEqual(6, jobContainer.Runs.Count);
}
[TestCase]
......@@ -765,8 +765,6 @@ namespace TUGraz.VectoCore.Tests.XML
.And.Message.EqualTo("Missing Power Demands for ICE Off Driving, ICE Off Standstill, and Base Demand"));
jobContainer.Execute();
Assert.Inconclusive("Engineering Mode XML");
}
[TestCase]
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment