diff --git a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs index 79491e59b462351a00f6bd9fb575a856b8af779f..70ee243384341da95eea7935a56120244968aa04 100644 --- a/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs +++ b/VectoCore/FileIO/Reader/Impl/DeclarationModeSimulationDataReader.cs @@ -169,5 +169,21 @@ namespace TUGraz.VectoCore.FileIO.Reader.Impl { get { return false; } } + + /// <summary> + /// Create gearboxdata instance directly from a file + /// </summary> + /// <param name="gearBoxFile"></param> + /// <param name="engineFile"></param> + /// <returns>GearboxData instance</returns> + public static GearboxData CreateGearboxDataFromFile(string gearBoxFile, string engineFile) + { + var reader = new DeclarationModeSimulationDataReader(); + reader.ReadEngine(engineFile); + reader.ReadGearbox(gearBoxFile); + var dao = new DeclarationDataAdapter(); + var engineData = dao.CreateEngineData(reader.Engine); + return dao.CreateGearboxData(reader.Gearbox, engineData); + } } } \ No newline at end of file diff --git a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs index 7fa56432ad50849e5622c7998c4c9a2f9062b609..dc56cd1f22040dd2a028dd0b6b8bc9c5ac64c878 100644 --- a/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs +++ b/VectoCoreTest/Models/SimulationComponent/GearboxTest.cs @@ -1,7 +1,9 @@ using System; using Microsoft.VisualStudio.TestTools.UnitTesting; +using TUGraz.VectoCore.Exceptions; using TUGraz.VectoCore.FileIO.Reader.Impl; using TUGraz.VectoCore.Models.Simulation.Impl; +using TUGraz.VectoCore.Models.SimulationComponent; using TUGraz.VectoCore.Models.SimulationComponent.Impl; using TUGraz.VectoCore.Tests.Utils; using TUGraz.VectoCore.Utils; @@ -12,6 +14,7 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent public class GearboxTest { protected string GearboxDataFile = @"TestData\Components\24t Coach.vgbx"; + protected string EngineDataFile = @"TestData\Components\24t Coach.veng"; public TestContext TestContext { get; set; } @@ -64,8 +67,9 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent [TestMethod] public void Gearbox_Request() { + var container = new VehicleContainer(); - var gearboxData = EngineeringModeSimulationDataReader.CreateGearboxDataFromFile(GearboxDataFile); + var gearboxData = DeclarationModeSimulationDataReader.CreateGearboxDataFromFile(GearboxDataFile, EngineDataFile); var gearbox = new Gearbox(container, gearboxData); var port = new MockTnOutPort(); @@ -109,5 +113,13 @@ namespace TUGraz.VectoCore.Tests.Models.SimulationComponent { Assert.Inconclusive(); } + + [TestMethod] + public void Gearbox_LessThanTwoGearsException() + { + var wrongFile = @"TestData\Components\24t Coach LessThanTwoGears.vgbx"; + AssertHelper.Exception<VectoSimulationException>( + () => DeclarationModeSimulationDataReader.CreateGearboxDataFromFile(wrongFile, EngineDataFile)); + } } } \ No newline at end of file diff --git a/VectoCoreTest/TestData/Components/24t Coach LessThanTwoGears.vgbx b/VectoCoreTest/TestData/Components/24t Coach LessThanTwoGears.vgbx new file mode 100644 index 0000000000000000000000000000000000000000..7c2b10a9e383c5d4587ff39a00fc509541c1cd7d --- /dev/null +++ b/VectoCoreTest/TestData/Components/24t Coach LessThanTwoGears.vgbx @@ -0,0 +1,29 @@ +{ + "Header": { + "CreatedBy": "Raphael Luz IVT TU-Graz (14fea510-e457-4bf6-860f-a9514dc327f1)", + "Date": "25.06.2015 11:23:31", + "AppVersion": "2.2 beta", + "FileVersion": 5 + }, + "Body": { + "SavedInDeclMode": false, + "ModelName": "Generic 24t Coach", + "Inertia": 0.0, + "TracInt": 1.0, + "Gears": [], + "TqReserve": 20.0, + "SkipGears": true, + "ShiftTime": 2, + "EaryShiftUp": true, + "StartTqReserve": 20.0, + "StartSpeed": 2.0, + "StartAcc": 0.6, + "GearboxType": "AMT", + "TorqueConverter": { + "Enabled": false, + "File": "<NOFILE>", + "RefRPM": 0.0, + "Inertia": 0.0 + } + } +} \ No newline at end of file diff --git a/VectoCoreTest/VectoCoreTest.csproj b/VectoCoreTest/VectoCoreTest.csproj index 1a091779ad9a0b543ca98287da5a3e40644fe4e2..844a9ae52c6982f960575a82fe9641063dedfdeb 100644 --- a/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCoreTest/VectoCoreTest.csproj @@ -145,6 +145,9 @@ <None Include="TestData\Components\12t Delivery Truck.vveh"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Components\24t Coach LessThanTwoGears.vgbx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Components\24t Coach.vgbx"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None>