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 2cda7ecb authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

adding testcase to reproduce bug

parent 2e8ae616
No related branches found
No related tags found
No related merge requests found
......@@ -34,11 +34,14 @@ using System.Data;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper;
using TUGraz.VectoCore.InputData.Reader.Impl;
using TUGraz.VectoCore.Models.Simulation.Data;
using TUGraz.VectoCore.Models.Simulation.Impl;
using TUGraz.VectoCore.Models.SimulationComponent.Data;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
using TUGraz.VectoCore.Tests.Utils;
using TUGraz.VectoCore.Utils;
#pragma warning disable 169
......@@ -90,6 +93,80 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
Assert.IsTrue(data.IsValid());
}
[TestMethod]
public void Validation_CombustionEngineData_Engineering()
{
var fuelConsumption = new DataTable();
fuelConsumption.Columns.Add("");
fuelConsumption.Columns.Add("");
fuelConsumption.Columns.Add("");
fuelConsumption.Rows.Add("1", "1", "1");
fuelConsumption.Rows.Add("2", "2", "2");
fuelConsumption.Rows.Add("3", "3", "3");
var fullLoad = new DataTable();
fullLoad.Columns.Add("Engine speed");
fullLoad.Columns.Add("max torque");
fullLoad.Columns.Add("drag torque");
fullLoad.Columns.Add("PT1");
fullLoad.Rows.Add("3", "3", "-3", "3");
fullLoad.Rows.Add("3", "3", "-3", "3");
var data = new MockEngineDataProvider {
ModelName = "asdf",
Displacement = 6374.SI().Cubic.Centi.Meter.Cast<CubicMeter>(),
IdleSpeed = 560.RPMtoRad(),
Inertia = 1.SI<KilogramSquareMeter>(),
FullLoadCurve = fullLoad,
FuelConsumptionMap = fuelConsumption
};
var dao = new EngineeringDataAdapter();
var engineData = dao.CreateEngineData(data);
var results = engineData.Validate();
Assert.IsFalse(results.Any(), "Validation failed: " + "; ".Join(results.Select(r => r.ErrorMessage)));
Assert.IsTrue(engineData.IsValid());
}
[TestMethod]
public void Validation_CombustionEngineData_Declaration()
{
var fuelConsumption = new DataTable();
fuelConsumption.Columns.Add("");
fuelConsumption.Columns.Add("");
fuelConsumption.Columns.Add("");
fuelConsumption.Rows.Add("1", "1", "1");
fuelConsumption.Rows.Add("2", "2", "2");
fuelConsumption.Rows.Add("3", "3", "3");
var fullLoad = new DataTable();
fullLoad.Columns.Add("Engine speed");
fullLoad.Columns.Add("max torque");
fullLoad.Columns.Add("drag torque");
fullLoad.Columns.Add("PT1");
fullLoad.Rows.Add("3", "3", "-3", "3");
fullLoad.Rows.Add("3", "3", "-3", "3");
var data = new MockEngineDataProvider {
ModelName = "asdf",
Displacement = 6374.SI().Cubic.Centi.Meter.Cast<CubicMeter>(),
IdleSpeed = 560.RPMtoRad(),
Inertia = 1.SI<KilogramSquareMeter>(),
FullLoadCurve = fullLoad,
FuelConsumptionMap = fuelConsumption,
WHTCMotorway = 1.1,
WHTCRural = 1.1,
WHTCUrban = 1.1
};
var dao = new DeclarationDataAdapter();
var engineData = dao.CreateEngineData(data);
var results = engineData.Validate();
Assert.IsFalse(results.Any(), "Validation failed: " + "; ".Join(results.Select(r => r.ErrorMessage)));
Assert.IsTrue(engineData.IsValid());
}
/// <summary>
/// VECTO-107 Check valid range of input parameters
/// </summary>
......@@ -136,7 +213,8 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponentData
// every field and property should be tested except private parent fields and properties and
// (4*4+1) * 2 = 17*2= 34 - 4 private parent fields (+2 public field and property which are tested twice) = 32
Assert.AreEqual(32, results.Count, "Validation Error: " + string.Join("\n_eng_avg", results.Select(r => r.ErrorMessage)));
Assert.AreEqual(32, results.Count,
"Validation Error: " + string.Join("\n_eng_avg", results.Select(r => r.ErrorMessage)));
}
......
using System.Data;
using TUGraz.VectoCore.InputData;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.Tests.Utils
{
public class MockEngineDataProvider : IEngineEngineeringInputData
{
public bool SavedInDeclarationMode { get; set; }
public string Vendor { get; set; }
public string ModelName { get; set; }
public string Creator { get; set; }
public string Date { get; set; }
public string TypeId { get; set; }
public string DigestValue { get; set; }
public IntegrityStatus IntegrityStatus { get; set; }
public CubicMeter Displacement { get; set; }
public PerSecond IdleSpeed { get; set; }
public double WHTCMotorway { get; set; }
public double WHTCRural { get; set; }
public double WHTCUrban { get; set; }
public DataTable FuelConsumptionMap { get; set; }
public DataTable FullLoadCurve { get; set; }
public KilogramSquareMeter Inertia { get; set; }
}
}
\ No newline at end of file
......@@ -90,6 +90,7 @@
<Compile Include="Integration\Truck40tPowerTrain.cs" />
<Compile Include="Models\SimulationComponent\GearboxPowertrainTest.cs" />
<Compile Include="Utils\InputDataHelper.cs" />
<Compile Include="Utils\MockEngineDataProvider.cs" />
<Compile Include="Utils\MockSimulationDataFactory.cs" />
<Compile Include="Utils\MockVairVehicleContainer.cs" />
<Compile Include="Utils\Port.cs" />
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment