From af75dc0afd79cd34dbd1831bc7dbe0c1a7e84bdf Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Fri, 1 Sep 2017 08:12:16 +0200 Subject: [PATCH] adding testcases for creating powertrain in declaration mode --- .../VectoCommon/Models/RetarderType.cs | 164 +++++++++--------- .../DeclarationSimulationFactoryTest.cs | 53 ++++++ VectoCore/VectoCoreTest/VectoCoreTest.csproj | 1 + 3 files changed, 136 insertions(+), 82 deletions(-) create mode 100644 VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs diff --git a/VectoCommon/VectoCommon/Models/RetarderType.cs b/VectoCommon/VectoCommon/Models/RetarderType.cs index 4fa16e3926..be41941035 100644 --- a/VectoCommon/VectoCommon/Models/RetarderType.cs +++ b/VectoCommon/VectoCommon/Models/RetarderType.cs @@ -29,85 +29,85 @@ * Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology */ -using System; -using TUGraz.VectoCommon.Utils; - -namespace TUGraz.VectoCommon.Models -{ - public enum RetarderType - { - None, - TransmissionInputRetarder, - TransmissionOutputRetarder, - EngineRetarder, - LossesIncludedInTransmission - } - - public static class RetarderTypeHelper - { - public static RetarderType Parse(string retarderType) - { - switch (retarderType.ToLowerInvariant()) { - case "primary": - return RetarderType.TransmissionInputRetarder; - case "secondary": - return RetarderType.TransmissionOutputRetarder; - default: - return retarderType.ParseEnum<RetarderType>(); - } - } - - public static string GetName(this RetarderType retarder) - { - switch (retarder) { - case RetarderType.TransmissionInputRetarder: - return "primary"; - case RetarderType.TransmissionOutputRetarder: - return "secondary"; - default: - return retarder.ToString(); - } - } - - public static string GetLabel(this RetarderType retarder) - { - switch (retarder) { - case RetarderType.None: - return "None"; - case RetarderType.TransmissionInputRetarder: - return "Primary Retarder"; - case RetarderType.TransmissionOutputRetarder: - return "Secondary Retarder"; - case RetarderType.EngineRetarder: - return "Engine Retarder"; - case RetarderType.LossesIncludedInTransmission: - return "Included in Transmission Loss Maps"; - default: - throw new ArgumentOutOfRangeException("RetarderType", retarder, null); - } - } - - public static string ToXMLFormat(this RetarderType type) - { - switch (type) { - case RetarderType.None: - return "None"; - case RetarderType.TransmissionInputRetarder: - return "Transmission Input Retarder"; - case RetarderType.TransmissionOutputRetarder: - return "Transmission Output Retarder"; - case RetarderType.EngineRetarder: - return "Engine Retarder"; - case RetarderType.LossesIncludedInTransmission: - return "Losses included in Gearbox"; - default: - throw new ArgumentOutOfRangeException("RetarderType", type, null); - } - } - - public static bool IsDedicatedComponent(this RetarderType retarder) - { - return retarder == RetarderType.TransmissionInputRetarder || retarder == RetarderType.TransmissionOutputRetarder; - } - } -} \ No newline at end of file +using System; +using TUGraz.VectoCommon.Utils; + +namespace TUGraz.VectoCommon.Models +{ + public enum RetarderType + { + None, + TransmissionInputRetarder, + TransmissionOutputRetarder, + EngineRetarder, + LossesIncludedInTransmission + } + + public static class RetarderTypeHelper + { + public static RetarderType Parse(string retarderType) + { + switch (retarderType.ToLowerInvariant()) { + case "primary": + return RetarderType.TransmissionInputRetarder; + case "secondary": + return RetarderType.TransmissionOutputRetarder; + default: + return retarderType.ParseEnum<RetarderType>(); + } + } + + public static string GetName(this RetarderType retarder) + { + switch (retarder) { + case RetarderType.TransmissionInputRetarder: + return "primary"; + case RetarderType.TransmissionOutputRetarder: + return "secondary"; + default: + return retarder.ToString(); + } + } + + public static string GetLabel(this RetarderType retarder) + { + switch (retarder) { + case RetarderType.None: + return "None"; + case RetarderType.TransmissionInputRetarder: + return "Primary Retarder"; + case RetarderType.TransmissionOutputRetarder: + return "Secondary Retarder"; + case RetarderType.EngineRetarder: + return "Engine Retarder"; + case RetarderType.LossesIncludedInTransmission: + return "Included in Transmission Loss Maps"; + default: + throw new ArgumentOutOfRangeException("RetarderType", retarder, null); + } + } + + public static string ToXMLFormat(this RetarderType type) + { + switch (type) { + case RetarderType.None: + return "None"; + case RetarderType.TransmissionInputRetarder: + return "Transmission Input Retarder"; + case RetarderType.TransmissionOutputRetarder: + return "Transmission Output Retarder"; + case RetarderType.EngineRetarder: + return "Engine Retarder"; + case RetarderType.LossesIncludedInTransmission: + return "Losses included in Gearbox"; + default: + throw new ArgumentOutOfRangeException("RetarderType", type, null); + } + } + + public static bool IsDedicatedComponent(this RetarderType retarder) + { + return retarder == RetarderType.TransmissionInputRetarder || retarder == RetarderType.TransmissionOutputRetarder; + } + } +} diff --git a/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs b/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs new file mode 100644 index 0000000000..7c5a874bc5 --- /dev/null +++ b/VectoCore/VectoCoreTest/Models/Simulation/DeclarationSimulationFactoryTest.cs @@ -0,0 +1,53 @@ +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Xml; +using NUnit.Framework; +using TUGraz.VectoCommon.Models; +using TUGraz.VectoCommon.Resources; +using TUGraz.VectoCore.Configuration; +using TUGraz.VectoCore.InputData.FileIO.XML.Declaration; +using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Utils; +using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert; + +namespace TUGraz.VectoCore.Tests.Models.Simulation +{ + [TestFixture] + public class DeclarationSimulationFactoryTest + { + const string SampleVehicleDecl = "TestData/XML/XMLReaderDeclaration/vecto_vehicle-sample.xml"; + + [TestCase("None", RetarderType.None), + TestCase("Losses included in Gearbox", RetarderType.LossesIncludedInTransmission), + TestCase("Engine Retarder", RetarderType.EngineRetarder), + TestCase("Transmission Input Retarder", RetarderType.TransmissionInputRetarder), + TestCase("Transmission Output Retarder", RetarderType.TransmissionOutputRetarder)] + public void TestRetarderTypes(string xmlValue, RetarderType retarderType) + { + var reader = XmlReader.Create(SampleVehicleDecl); + + var doc = new XmlDocument(); + doc.Load(reader); + var nav = doc.CreateNavigator(); + var manager = new XmlNamespaceManager(nav.NameTable); + var helper = new XPathHelper(ExecutionMode.Declaration); + helper.AddNamespaces(manager); + + var xmlRetarderType = nav.SelectSingleNode(helper.QueryAbs( + helper.NSPrefix(XMLNames.VectoInputDeclaration, Constants.XML.RootNSPrefix), + XMLNames.Component_Vehicle, + XMLNames.Vehicle_RetarderType), manager); + xmlRetarderType.SetValue(xmlValue); + + var modified = XmlReader.Create(new StringReader(nav.OuterXml)); + + var inputDataProvider = new XMLDeclarationInputDataProvider(modified, true); + + var factory = new SimulatorFactory(ExecutionMode.Declaration, inputDataProvider, null) {Validate = false}; + + var runs = factory.SimulationRuns().ToArray(); + Assert.AreEqual(8, runs.Length); + } + } +} diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index 137e8472b0..d27b8e6b1b 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -109,6 +109,7 @@ <Compile Include="Models\Simulation\GearboxInertiaTest.cs" /> <Compile Include="Models\Simulation\MockSumWriter.cs" /> <Compile Include="Models\Simulation\GetSectionTest.cs" /> + <Compile Include="Models\Simulation\DeclarationSimulationFactoryTest.cs" /> <Compile Include="Reports\ActualModalSimulationDataTest.cs" /> <Compile Include="Reports\ModDataTest.cs" /> <Compile Include="Models\Simulation\MeasuredSpeedModeTest.cs" /> -- GitLab