From a7383c6d992cb7d00471d205191883e2f8a94b7f Mon Sep 17 00:00:00 2001 From: Markus Quaritsch <markus.quaritsch@tugraz.at> Date: Mon, 8 Aug 2016 13:02:40 +0200 Subject: [PATCH] additional test for reading different tc gearbox types --- VectoCore/VectoCoreTest/FileIO/JsonTest.cs | 103 +++++++++++++++++++++ 1 file changed, 103 insertions(+) diff --git a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonTest.cs index e086e41bc5..7a5d15d673 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonTest.cs @@ -39,6 +39,7 @@ using TUGraz.VectoCommon.InputData; using TUGraz.VectoCommon.Models; using TUGraz.VectoCommon.Utils; using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter; using TUGraz.VectoCore.Tests.Utils; namespace TUGraz.VectoCore.Tests.FileIO @@ -156,6 +157,108 @@ namespace TUGraz.VectoCore.Tests.FileIO "Key OverSpeedEcoRoll not found"); } + [TestMethod] + public void ReadGearboxV5() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\Gearbox_v5.vgbx"); + + var ratios = new[] { 3.0, 1.0, 0.8 }; + Assert.AreEqual(ratios.Length, inputProvider.Gears.Count); + for (int i = 0; i < ratios.Length; i++) { + Assert.AreEqual(ratios[i], inputProvider.Gears[i].Ratio); + } + var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider, + MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng"), 2.1, 0.5.SI<Meter>(), + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + // interpreted as gearbox with first and second gear using TC (due to gear ratios) + Assert.IsFalse(gbxData.Gears[0].HasLockedGear); + Assert.IsTrue(gbxData.Gears[0].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + } + + [TestMethod] + public void ReadGearboxSerialTC() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxSerial.vgbx"); + + var ratios = new[] { 3.1, 2.4, 1.8, 1.3, 1.0 }; + Assert.AreEqual(ratios.Length, inputProvider.Gears.Count); + for (int i = 0; i < ratios.Length; i++) { + Assert.AreEqual(ratios[i], inputProvider.Gears[i].Ratio); + } + var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider, + MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng"), 2.1, 0.5.SI<Meter>(), + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsTrue(gbxData.Gears[0].HasLockedGear); + Assert.IsTrue(gbxData.Gears[0].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsFalse(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + + var gear = gbxData.Gears[0]; + Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); + } + + [TestMethod] + public void ReadGearboxPowersplitTC() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxPowerSplit.vgbx"); + + var ratios = new[] { 3.1, 2.4, 1.8, 1.3, 1.0 }; + Assert.AreEqual(ratios.Length, inputProvider.Gears.Count); + for (int i = 0; i < ratios.Length; i++) { + Assert.AreEqual(ratios[i], inputProvider.Gears[i].Ratio); + } + var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider, + MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng"), 2.1, 0.5.SI<Meter>(), + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsTrue(gbxData.Gears[0].HasLockedGear); + Assert.IsTrue(gbxData.Gears[0].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsFalse(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + + Assert.AreEqual(1, gbxData.Gears[0].TorqueConverterRatio); + } + + [TestMethod] + public void ReadGearboxDualTC() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxSerialDualTC.vgbx"); + + var ratios = new[] { 4.35, 2.4, 1.8, 1.3, 1.0 }; + Assert.AreEqual(ratios.Length, inputProvider.Gears.Count); + for (int i = 0; i < ratios.Length; i++) { + Assert.AreEqual(ratios[i], inputProvider.Gears[i].Ratio); + } + var gbxData = new EngineeringDataAdapter().CreateGearboxData(inputProvider, + MockSimulationDataFactory.CreateEngineDataFromFile(@"TestData\Components\AT_GBX\Engine.veng"), 2.1, 0.5.SI<Meter>(), + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsFalse(gbxData.Gears[0].HasLockedGear); + Assert.IsTrue(gbxData.Gears[0].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + + + var gear = gbxData.Gears[1]; + Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); + } + //[TestMethod] //public void TestReadingElectricTechlist() //{ -- GitLab