diff --git a/VECTO/MainModule.vb b/VECTO/MainModule.vb index ae7a4e1282019286494abc54de08ecc3d44c953b..25f0781d0d35175f7b3a506b8dd531e240f94c57 100644 --- a/VECTO/MainModule.vb +++ b/VECTO/MainModule.vb @@ -60,9 +60,12 @@ Module MainModule End Function Public Function GetRelativePath(filePath As String, basePath As String) As String - If (String.IsNullOrEmpty(filePath) OrElse String.IsNullOrEmpty(basePath)) Then + If (String.IsNullOrEmpty(filePath)) then Return "" End If + If (string.isnullOrempty(basePath)) Then + Return filePath + End If If (Path.GetDirectoryName(filePath).StartsWith(basePath, StringComparison.OrdinalIgnoreCase)) Then Return Path.GetFullPath(filePath).Substring(basePath.Length + If(basePath.EndsWith("\"), 0, 1)) End If diff --git a/VECTO/OutputData/JSONFileWriter.vb b/VECTO/OutputData/JSONFileWriter.vb index 35935860691cf18f494bf1713dabef4667dfc8dc..7d95b1e2e47f8a522ec65e7492b04fa2e155238c 100644 --- a/VECTO/OutputData/JSONFileWriter.vb +++ b/VECTO/OutputData/JSONFileWriter.vb @@ -207,8 +207,8 @@ Public Class JSONFileWriter {"CurbWeight", vehicle.CurbMassChassis.Value()}, {"CurbWeightExtra", vehicle.CurbMassExtra.Value()}, {"Loading", vehicle.Loading.Value()}, - {"MassMax", vehicle.GrossVehicleMassRating.ConvertToTon()}, - {"rdyn", vehicle.DynamicTyreRadius.ConvertToMilliMeter()}, + {"MassMax", vehicle.GrossVehicleMassRating.ConvertToTon().Value}, + {"rdyn", vehicle.DynamicTyreRadius.ConvertToMilliMeter().Value}, {"CdCorrMode", airdrag.CrossWindCorrectionMode.GetName()}, {"CdCorrFile", If((airdrag.CrossWindCorrectionMode = CrossWindCorrectionMode.SpeedDependentCorrectionFactor OrElse diff --git a/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs index 545e08e7ea15f70a38e5d1113ff09e242e6b010a..b10c15f28ccd4323a7728b3362abc0ed04a717e9 100644 --- a/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs @@ -45,6 +45,8 @@ namespace TUGraz.VectoCommon.Utils Units = units; } + public double Value { get { return _value; } } + protected bool Equals(ConvertedSI other) { return _value.Equals(other._value) && string.Equals(Units, other.Units); diff --git a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs similarity index 97% rename from VectoCore/VectoCoreTest/FileIO/JsonTest.cs rename to VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs index 1d5cc14530be0a4ee2921ee26023d2c846bebc0c..91155c3cf240a23b5df8ca9c896f73128868bd88 100644 --- a/VectoCore/VectoCoreTest/FileIO/JsonTest.cs +++ b/VectoCore/VectoCoreTest/FileIO/JsonReadTest.cs @@ -1,512 +1,512 @@ -/* -* This file is part of VECTO. -* -* Copyright © 2012-2017 European Union -* -* Developed by Graz University of Technology, -* Institute of Internal Combustion Engines and Thermodynamics, -* Institute of Technical Informatics -* -* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved -* by the European Commission - subsequent versions of the EUPL (the "Licence"); -* You may not use VECTO except in compliance with the Licence. -* You may obtain a copy of the Licence at: -* -* https://joinup.ec.europa.eu/community/eupl/og_page/eupl -* -* Unless required by applicable law or agreed to in writing, VECTO -* distributed under the Licence is distributed on an "AS IS" basis, -* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -* See the Licence for the specific language governing permissions and -* limitations under the Licence. -* -* Authors: -* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology -* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology -* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology -* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology -* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology -* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology -*/ - -using Newtonsoft.Json; -using Newtonsoft.Json.Linq; -using NUnit.Framework; -using System.IO; -using TUGraz.VectoCommon.Exceptions; -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 -{ - [TestFixture] - public class JsonTest - { - private const string TestJobFile = @"Testdata\Jobs\40t_Long_Haul_Truck.vecto"; - private const string TestVehicleFile = @"Testdata\Components\24t Coach.vveh"; - - [OneTimeSetUp] - public void RunBeforeAnyTests() - { - Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); - } - - [TestCase] - public void ReadJobTest() - { - var job = JSONInputDataFactory.ReadJsonJob(TestJobFile); - - Assert.IsNotNull(job); - // AssertHelper.Exception<InvalidFileFormatException>(() => ); - } - - [TestCase] - public void NoEngineFileTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("EngineFile").Remove(); - - AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), - "JobFile: Failed to read Engine file '': Key EngineFile not found"); - } - - [TestCase] - public void NoGearboxFileTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("GearboxFile").Remove(); - - AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), - "JobFile: Failed to read Gearbox file '': Key GearboxFile not found"); - } - - [TestCase] - public void NoVehicleFileTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("VehicleFile").Remove(); - - AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), - "JobFile: Failed to read Vehicle file '': Key VehicleFile not found"); - } - - [TestCase] - public void NoCyclesTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("Cycles").Remove(); - - var tmp = new JSONInputDataV2(json, TestJobFile).Cycles; - Assert.AreEqual(0, tmp.Count); - } - - [TestCase] - public void NoAuxTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("Aux").Remove(); - - // MK,2016-01-20: Changed for PWheel: aux entry may be missing, and that is ok. - var tmp = new JSONInputDataV2(json, TestJobFile).JobInputData.Vehicle.AuxiliaryInputData().Auxiliaries; - Assert.IsTrue(tmp.Count == 0); - } - - [TestCase] - public void NoDriverAccCurveTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("VACC").Remove(); - - IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); - var tmp = input.DriverInputData.AccelerationCurve; - Assert.IsNull(tmp); - } - - [TestCase] - public void UseDeclarationDriverAccCurveTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - json["Body"]["VACC"] = "Truck"; - - IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); - var tmp = input.DriverInputData.AccelerationCurve; - Assert.IsNotNull(tmp); - } - - [TestCase] - public void NoLookaheadCoastingTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("LAC").Remove(); - - IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); - var tmp = input.DriverInputData.Lookahead; - Assert.IsNull(tmp); - } - - [TestCase] - public void NoOverspeedEcoRollTest() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - ((JObject)json["Body"]).Property("OverSpeedEcoRoll").Remove(); - - AssertHelper.Exception<VectoException>( - () => { - var tmp = ((IEngineeringInputDataProvider)new JSONInputDataV2(json, TestJobFile)).DriverInputData.OverSpeedEcoRoll; - }, - "Key OverSpeedEcoRoll not found"); - } - - [TestCase] - 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", 0), 2.1, - 0.5.SI<Meter>(), VehicleCategory.RigidTruck, - 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[1].HasLockedGear); - Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[2].HasLockedGear); - Assert.IsTrue(gbxData.Gears[2].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[3].HasLockedGear); - Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); - } - - [TestCase] - public void ReadGearboxSerialTC() - { - var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxSerial.vgbx"); - - var ratios = new[] { 3.4, 1.9, 1.42, 1.0, 0.7, 0.62 }; - 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", 0), 2.1, - 0.5.SI<Meter>(), VehicleCategory.RigidTruck, - true); - Assert.AreEqual(ratios.Length, gbxData.Gears.Count); - - Assert.IsTrue(gbxData.Gears[1].HasLockedGear); - Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[2].HasLockedGear); - Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[3].HasLockedGear); - Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); - - var gear = gbxData.Gears[1]; - Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); - } - - [TestCase] - public void ReadGearboxPowersplitTC() - { - var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxPowerSplit.vgbx"); - - var ratios = new[] { 1.35, 1.0, 0.73 }; - 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", 0), 2.1, - 0.5.SI<Meter>(), VehicleCategory.RigidTruck, - true); - Assert.AreEqual(ratios.Length, gbxData.Gears.Count); - - Assert.IsTrue(gbxData.Gears[1].HasLockedGear); - Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[2].HasLockedGear); - Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[3].HasLockedGear); - Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); - - Assert.AreEqual(1, gbxData.Gears[1].TorqueConverterRatio); - } - - [TestCase] - public void ReadGearboxDualTCTruck() - { - 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", 0), 2.1, - 0.5.SI<Meter>(), VehicleCategory.RigidTruck, - true); - Assert.AreEqual(ratios.Length, gbxData.Gears.Count); - - Assert.IsFalse(gbxData.Gears[1].HasLockedGear); - Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[2].HasLockedGear); - Assert.IsTrue(gbxData.Gears[2].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[3].HasLockedGear); - Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); - - - var gear = gbxData.Gears[2]; - Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); - } - - [TestCase] - public void ReadGearboxSingleTCBus() - { - 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", 0), 2.1, - 0.5.SI<Meter>(), VehicleCategory.InterurbanBus, - true); - Assert.AreEqual(ratios.Length, gbxData.Gears.Count); - - Assert.IsTrue(gbxData.Gears[1].HasLockedGear); - Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[2].HasLockedGear); - Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[3].HasLockedGear); - Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); - - - var gear = gbxData.Gears[1]; - Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); - } - - [TestCase] - public void ReadGearboxDualTCBus() - { - var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxSerialDualTCBus.vgbx"); - - var ratios = new[] { 4.58, 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", 0), 2.1, - 0.5.SI<Meter>(), VehicleCategory.InterurbanBus, - true); - Assert.AreEqual(ratios.Length, gbxData.Gears.Count); - - Assert.IsFalse(gbxData.Gears[1].HasLockedGear); - Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[2].HasLockedGear); - Assert.IsTrue(gbxData.Gears[2].HasTorqueConverter); - Assert.IsTrue(gbxData.Gears[3].HasLockedGear); - Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); - - - var gear = gbxData.Gears[2]; - Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); - } - - //[TestCase] - //public void TestReadingElectricTechlist() - //{ - // var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); - // ((JArray)json["Body"]["Aux"][3]["TechList"]).Add("LED lights"); - - // var job = new JSONInputDataV2(json, TestJobFile); - // foreach (var aux in job.Auxiliaries) { - // if (aux.ID == "ES") { - // Assert.AreEqual(1, aux.TechList.Count); - // Assert.AreEqual("LED lights", aux.TechList.First()); - // } - // } - //} - - [TestCase] - public void JSON_Read_AngleGear() - { - var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestVehicleFile))); - var angleGear = json["Body"]["Angledrive"]; - - Assert.AreEqual(AngledriveType.SeparateAngledrive, - angleGear["Type"].Value<string>().ParseEnum<AngledriveType>()); - Assert.AreEqual(3.5, angleGear["Ratio"].Value<double>()); - Assert.AreEqual("AngleGear.vtlm", angleGear["LossMap"].Value<string>()); - } - } - - // [TestFixture] - // public class JsonTest - // { - // private const string jsonExpected = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""2015-11-17T11:49:03Z"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - - // private const string jsonExpected2 = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""2015-01-07T11:49:03Z"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - - // [TestCase] - // public void TestJsonHeaderEquality() - // { - // var h1 = new JsonDataHeader { - // AppVersion = "MyVecto3", - // CreatedBy = "UnitTest", - // Date = new DateTime(1970, 1, 1), - // FileVersion = 3 - // }; - // var h2 = new JsonDataHeader { - // AppVersion = "MyVecto3", - // CreatedBy = "UnitTest", - // Date = new DateTime(1970, 1, 1), - // FileVersion = 3 - // }; - // Assert.AreEqual(h1, h1); - // Assert.AreEqual(h1, h2); - // Assert.AreNotEqual(h1, null); - // Assert.AreNotEqual(h1, "hello world"); - // } - - // [TestCase] - // public void Test_Json_DateFormat_German() - // { - // var json = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""17.11.2015 11:49:03"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); - - // Assert.AreEqual("3.0.1.320", header.AppVersion); - // Assert.AreEqual(7u, header.FileVersion); - // Assert.AreEqual("Michael Krisper", header.CreatedBy); - // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); - - // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); - // Assert.AreEqual(jsonExpected, jsonCompare); - // } - - // [TestCase] - // public void Test_Json_DateFormat_German2() - // { - // var json = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""7.1.2015 11:49:03"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); - - // Assert.AreEqual("3.0.1.320", header.AppVersion); - // Assert.AreEqual(7u, header.FileVersion); - // Assert.AreEqual("Michael Krisper", header.CreatedBy); - // Assert.AreEqual(new DateTime(2015, 1, 7, 11, 49, 3, DateTimeKind.Utc), header.Date); - - // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); - // Assert.AreEqual(jsonExpected2, jsonCompare); - // } - - // [TestCase] - // public void Test_Json_DateFormat_English() - // { - // var json = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""11/17/2015 11:49:03 AM"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); - - // Assert.AreEqual("3.0.1.320", header.AppVersion); - // Assert.AreEqual(7u, header.FileVersion); - // Assert.AreEqual("Michael Krisper", header.CreatedBy); - // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); - - // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); - // Assert.AreEqual(jsonExpected, jsonCompare); - // } - - // [TestCase] - // public void Test_Json_DateFormat_English2() - // { - // var json = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""1/7/2015 11:49:03 AM"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); - - // Assert.AreEqual("3.0.1.320", header.AppVersion); - // Assert.AreEqual(7u, header.FileVersion); - // Assert.AreEqual("Michael Krisper", header.CreatedBy); - // Assert.AreEqual(new DateTime(2015, 1, 7, 11, 49, 3, DateTimeKind.Utc), header.Date); - - // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); - // Assert.AreEqual(jsonExpected2, jsonCompare); - // } - - // [TestCase] - // public void Test_Json_DateFormat_ISO8601() - // { - // var json = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""2015-11-17T11:49:03Z"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); - - // Assert.AreEqual("3.0.1.320", header.AppVersion); - // Assert.AreEqual(7u, header.FileVersion); - // Assert.AreEqual("Michael Krisper", header.CreatedBy); - // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); - - // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); - // Assert.AreEqual(json, jsonCompare); - // } - - // [TestCase] - // public void Test_Json_DateFormat_ISO8601_CET() - // { - // var json = @"{ - // ""CreatedBy"": ""Michael Krisper"", - // ""Date"": ""2015-11-17T11:49:03+01:00"", - // ""AppVersion"": ""3.0.1.320"", - // ""FileVersion"": 7 - //}"; - // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); - - // Assert.AreEqual("3.0.1.320", header.AppVersion); - // Assert.AreEqual(7u, header.FileVersion); - // Assert.AreEqual("Michael Krisper", header.CreatedBy); - // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); - - // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); - // Assert.AreEqual(json, jsonCompare); - // } - // } -} +/* +* This file is part of VECTO. +* +* Copyright © 2012-2017 European Union +* +* Developed by Graz University of Technology, +* Institute of Internal Combustion Engines and Thermodynamics, +* Institute of Technical Informatics +* +* VECTO is licensed under the EUPL, Version 1.1 or - as soon they will be approved +* by the European Commission - subsequent versions of the EUPL (the "Licence"); +* You may not use VECTO except in compliance with the Licence. +* You may obtain a copy of the Licence at: +* +* https://joinup.ec.europa.eu/community/eupl/og_page/eupl +* +* Unless required by applicable law or agreed to in writing, VECTO +* distributed under the Licence is distributed on an "AS IS" basis, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the Licence for the specific language governing permissions and +* limitations under the Licence. +* +* Authors: +* Stefan Hausberger, hausberger@ivt.tugraz.at, IVT, Graz University of Technology +* Christian Kreiner, christian.kreiner@tugraz.at, ITI, Graz University of Technology +* Michael Krisper, michael.krisper@tugraz.at, ITI, Graz University of Technology +* Raphael Luz, luz@ivt.tugraz.at, IVT, Graz University of Technology +* Markus Quaritsch, markus.quaritsch@tugraz.at, IVT, Graz University of Technology +* Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology +*/ + +using Newtonsoft.Json; +using Newtonsoft.Json.Linq; +using NUnit.Framework; +using System.IO; +using TUGraz.VectoCommon.Exceptions; +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 +{ + [TestFixture] + public class JsonReadTest + { + private const string TestJobFile = @"Testdata\Jobs\40t_Long_Haul_Truck.vecto"; + private const string TestVehicleFile = @"Testdata\Components\24t Coach.vveh"; + + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + } + + [TestCase] + public void ReadJobTest() + { + var job = JSONInputDataFactory.ReadJsonJob(TestJobFile); + + Assert.IsNotNull(job); + // AssertHelper.Exception<InvalidFileFormatException>(() => ); + } + + [TestCase] + public void NoEngineFileTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("EngineFile").Remove(); + + AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), + "JobFile: Failed to read Engine file '': Key EngineFile not found"); + } + + [TestCase] + public void NoGearboxFileTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("GearboxFile").Remove(); + + AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), + "JobFile: Failed to read Gearbox file '': Key GearboxFile not found"); + } + + [TestCase] + public void NoVehicleFileTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("VehicleFile").Remove(); + + AssertHelper.Exception<VectoException>(() => new JSONInputDataV2(json, TestJobFile), + "JobFile: Failed to read Vehicle file '': Key VehicleFile not found"); + } + + [TestCase] + public void NoCyclesTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("Cycles").Remove(); + + var tmp = new JSONInputDataV2(json, TestJobFile).Cycles; + Assert.AreEqual(0, tmp.Count); + } + + [TestCase] + public void NoAuxTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("Aux").Remove(); + + // MK,2016-01-20: Changed for PWheel: aux entry may be missing, and that is ok. + var tmp = new JSONInputDataV2(json, TestJobFile).JobInputData.Vehicle.AuxiliaryInputData().Auxiliaries; + Assert.IsTrue(tmp.Count == 0); + } + + [TestCase] + public void NoDriverAccCurveTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("VACC").Remove(); + + IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); + var tmp = input.DriverInputData.AccelerationCurve; + Assert.IsNull(tmp); + } + + [TestCase] + public void UseDeclarationDriverAccCurveTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + json["Body"]["VACC"] = "Truck"; + + IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); + var tmp = input.DriverInputData.AccelerationCurve; + Assert.IsNotNull(tmp); + } + + [TestCase] + public void NoLookaheadCoastingTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("LAC").Remove(); + + IEngineeringInputDataProvider input = new JSONInputDataV2(json, TestJobFile); + var tmp = input.DriverInputData.Lookahead; + Assert.IsNull(tmp); + } + + [TestCase] + public void NoOverspeedEcoRollTest() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + ((JObject)json["Body"]).Property("OverSpeedEcoRoll").Remove(); + + AssertHelper.Exception<VectoException>( + () => { + var tmp = ((IEngineeringInputDataProvider)new JSONInputDataV2(json, TestJobFile)).DriverInputData.OverSpeedEcoRoll; + }, + "Key OverSpeedEcoRoll not found"); + } + + [TestCase] + 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", 0), 2.1, + 0.5.SI<Meter>(), VehicleCategory.RigidTruck, + 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[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsTrue(gbxData.Gears[2].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[3].HasLockedGear); + Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); + } + + [TestCase] + public void ReadGearboxSerialTC() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxSerial.vgbx"); + + var ratios = new[] { 3.4, 1.9, 1.42, 1.0, 0.7, 0.62 }; + 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", 0), 2.1, + 0.5.SI<Meter>(), VehicleCategory.RigidTruck, + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[3].HasLockedGear); + Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); + + var gear = gbxData.Gears[1]; + Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); + } + + [TestCase] + public void ReadGearboxPowersplitTC() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxPowerSplit.vgbx"); + + var ratios = new[] { 1.35, 1.0, 0.73 }; + 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", 0), 2.1, + 0.5.SI<Meter>(), VehicleCategory.RigidTruck, + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[3].HasLockedGear); + Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); + + Assert.AreEqual(1, gbxData.Gears[1].TorqueConverterRatio); + } + + [TestCase] + public void ReadGearboxDualTCTruck() + { + 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", 0), 2.1, + 0.5.SI<Meter>(), VehicleCategory.RigidTruck, + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsFalse(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsTrue(gbxData.Gears[2].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[3].HasLockedGear); + Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); + + + var gear = gbxData.Gears[2]; + Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); + } + + [TestCase] + public void ReadGearboxSingleTCBus() + { + 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", 0), 2.1, + 0.5.SI<Meter>(), VehicleCategory.InterurbanBus, + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsTrue(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsFalse(gbxData.Gears[2].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[3].HasLockedGear); + Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); + + + var gear = gbxData.Gears[1]; + Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); + } + + [TestCase] + public void ReadGearboxDualTCBus() + { + var inputProvider = JSONInputDataFactory.ReadGearbox(@"TestData\Components\AT_GBX\GearboxSerialDualTCBus.vgbx"); + + var ratios = new[] { 4.58, 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", 0), 2.1, + 0.5.SI<Meter>(), VehicleCategory.InterurbanBus, + true); + Assert.AreEqual(ratios.Length, gbxData.Gears.Count); + + Assert.IsFalse(gbxData.Gears[1].HasLockedGear); + Assert.IsTrue(gbxData.Gears[1].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[2].HasLockedGear); + Assert.IsTrue(gbxData.Gears[2].HasTorqueConverter); + Assert.IsTrue(gbxData.Gears[3].HasLockedGear); + Assert.IsFalse(gbxData.Gears[3].HasTorqueConverter); + + + var gear = gbxData.Gears[2]; + Assert.AreEqual(gear.Ratio, gear.TorqueConverterRatio); + } + + //[TestCase] + //public void TestReadingElectricTechlist() + //{ + // var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestJobFile))); + // ((JArray)json["Body"]["Aux"][3]["TechList"]).Add("LED lights"); + + // var job = new JSONInputDataV2(json, TestJobFile); + // foreach (var aux in job.Auxiliaries) { + // if (aux.ID == "ES") { + // Assert.AreEqual(1, aux.TechList.Count); + // Assert.AreEqual("LED lights", aux.TechList.First()); + // } + // } + //} + + [TestCase] + public void JSON_Read_AngleGear() + { + var json = (JObject)JToken.ReadFrom(new JsonTextReader(File.OpenText(TestVehicleFile))); + var angleGear = json["Body"]["Angledrive"]; + + Assert.AreEqual(AngledriveType.SeparateAngledrive, + angleGear["Type"].Value<string>().ParseEnum<AngledriveType>()); + Assert.AreEqual(3.5, angleGear["Ratio"].Value<double>()); + Assert.AreEqual("AngleGear.vtlm", angleGear["LossMap"].Value<string>()); + } + } + + // [TestFixture] + // public class JsonTest + // { + // private const string jsonExpected = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""2015-11-17T11:49:03Z"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + + // private const string jsonExpected2 = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""2015-01-07T11:49:03Z"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + + // [TestCase] + // public void TestJsonHeaderEquality() + // { + // var h1 = new JsonDataHeader { + // AppVersion = "MyVecto3", + // CreatedBy = "UnitTest", + // Date = new DateTime(1970, 1, 1), + // FileVersion = 3 + // }; + // var h2 = new JsonDataHeader { + // AppVersion = "MyVecto3", + // CreatedBy = "UnitTest", + // Date = new DateTime(1970, 1, 1), + // FileVersion = 3 + // }; + // Assert.AreEqual(h1, h1); + // Assert.AreEqual(h1, h2); + // Assert.AreNotEqual(h1, null); + // Assert.AreNotEqual(h1, "hello world"); + // } + + // [TestCase] + // public void Test_Json_DateFormat_German() + // { + // var json = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""17.11.2015 11:49:03"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); + + // Assert.AreEqual("3.0.1.320", header.AppVersion); + // Assert.AreEqual(7u, header.FileVersion); + // Assert.AreEqual("Michael Krisper", header.CreatedBy); + // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); + + // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); + // Assert.AreEqual(jsonExpected, jsonCompare); + // } + + // [TestCase] + // public void Test_Json_DateFormat_German2() + // { + // var json = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""7.1.2015 11:49:03"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); + + // Assert.AreEqual("3.0.1.320", header.AppVersion); + // Assert.AreEqual(7u, header.FileVersion); + // Assert.AreEqual("Michael Krisper", header.CreatedBy); + // Assert.AreEqual(new DateTime(2015, 1, 7, 11, 49, 3, DateTimeKind.Utc), header.Date); + + // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); + // Assert.AreEqual(jsonExpected2, jsonCompare); + // } + + // [TestCase] + // public void Test_Json_DateFormat_English() + // { + // var json = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""11/17/2015 11:49:03 AM"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); + + // Assert.AreEqual("3.0.1.320", header.AppVersion); + // Assert.AreEqual(7u, header.FileVersion); + // Assert.AreEqual("Michael Krisper", header.CreatedBy); + // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); + + // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); + // Assert.AreEqual(jsonExpected, jsonCompare); + // } + + // [TestCase] + // public void Test_Json_DateFormat_English2() + // { + // var json = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""1/7/2015 11:49:03 AM"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); + + // Assert.AreEqual("3.0.1.320", header.AppVersion); + // Assert.AreEqual(7u, header.FileVersion); + // Assert.AreEqual("Michael Krisper", header.CreatedBy); + // Assert.AreEqual(new DateTime(2015, 1, 7, 11, 49, 3, DateTimeKind.Utc), header.Date); + + // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); + // Assert.AreEqual(jsonExpected2, jsonCompare); + // } + + // [TestCase] + // public void Test_Json_DateFormat_ISO8601() + // { + // var json = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""2015-11-17T11:49:03Z"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); + + // Assert.AreEqual("3.0.1.320", header.AppVersion); + // Assert.AreEqual(7u, header.FileVersion); + // Assert.AreEqual("Michael Krisper", header.CreatedBy); + // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); + + // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); + // Assert.AreEqual(json, jsonCompare); + // } + + // [TestCase] + // public void Test_Json_DateFormat_ISO8601_CET() + // { + // var json = @"{ + // ""CreatedBy"": ""Michael Krisper"", + // ""Date"": ""2015-11-17T11:49:03+01:00"", + // ""AppVersion"": ""3.0.1.320"", + // ""FileVersion"": 7 + //}"; + // var header = JsonConvert.DeserializeObject<JsonDataHeader>(json); + + // Assert.AreEqual("3.0.1.320", header.AppVersion); + // Assert.AreEqual(7u, header.FileVersion); + // Assert.AreEqual("Michael Krisper", header.CreatedBy); + // Assert.AreEqual(new DateTime(2015, 11, 17, 11, 49, 3, DateTimeKind.Utc), header.Date); + + // var jsonCompare = JsonConvert.SerializeObject(header, Formatting.Indented); + // Assert.AreEqual(json, jsonCompare); + // } + // } +} diff --git a/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs b/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs new file mode 100644 index 0000000000000000000000000000000000000000..f64d4fbeca301a944a0d34a316fb0c00826617bd --- /dev/null +++ b/VectoCore/VectoCoreTest/FileIO/JsonWriteTest.cs @@ -0,0 +1,98 @@ +using System.IO; +using NUnit.Framework; +using NUnit.Framework.Internal; +using TUGraz.VectoCommon.InputData; +using TUGraz.VectoCore.InputData.FileIO.JSON; +using TUGraz.VectoCore.Tests.Utils; +using TUGraz.VECTO; + +namespace TUGraz.VectoCore.Tests.FileIO +{ + [TestFixture] + public class JsonWriteTest + { + [OneTimeSetUp] + public void RunBeforeAnyTests() + { + Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory); + } + + [TestCase(@"TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Class9_RigidTruck.vveh")] + public void SaveVehicleFileDecl(string vehicleFile) + { + var outFile = "json_vehicle_write_test.vveh"; + + var input = JSONInputDataFactory.ReadComponentData(vehicleFile); + var inputProvider = input as IEngineeringInputDataProvider; + Assert.NotNull(inputProvider); + + var vehicleInput = inputProvider.JobInputData.Vehicle; + + var writer = JSONFileWriter.Instance; + + VECTO_Global.Cfg = new VECTO.Configuration() {DeclMode = true}; + writer.SaveVehicle(vehicleInput, vehicleInput.AirdragInputData, vehicleInput.RetarderInputData, vehicleInput.PTOTransmissionInputData, vehicleInput.AngledriveInputData, outFile); + + var savedData = JSONInputDataFactory.ReadComponentData(outFile); + var savedInprovider = savedData as IEngineeringInputDataProvider; + Assert.NotNull(savedInprovider); + //Assert.AreEqual(vehicleInput, savedInprovider.JobInputData.Vehicle); + + AssertHelper.PublicPropertiesEqual(typeof(IVehicleDeclarationInputData),vehicleInput, savedInprovider.JobInputData.Vehicle, + new [] {"Source", "GearboxInputData", "EngineInputData", "TorqueConverterInputData", "AxleGearInputData"}); + } + + + [TestCase(@"TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Engine_324kW_12.7l.veng")] + public void SaveEngineFileDecl(string engineFile) + { + var outFile = "json_engine_write_test.veng"; + + var input = JSONInputDataFactory.ReadComponentData(engineFile); + var inputProvider = input as IEngineeringInputDataProvider; + Assert.NotNull(inputProvider); + + var engineInputData = inputProvider.JobInputData.Vehicle.EngineInputData; + + var writer = JSONFileWriter.Instance; + + VECTO_Global.Cfg = new VECTO.Configuration() { DeclMode = true }; + writer.SaveEngine(engineInputData,outFile); + + var savedData = JSONInputDataFactory.ReadComponentData(outFile); + var savedInprovider = savedData as IEngineeringInputDataProvider; + Assert.NotNull(savedInprovider); + + AssertHelper.PublicPropertiesEqual(typeof(IEngineDeclarationInputData),engineInputData, savedInprovider.JobInputData.Vehicle.EngineInputData, + new[] { "Source" }); + } + + [TestCase(@"TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\AMT_12.vgbx")] + public void SaveGearboxAxlegearFileDecl(string engineFile) + { + var outFile = "json_gearbox_write_test.vgbx"; + + var input = JSONInputDataFactory.ReadComponentData(engineFile); + var inputProvider = input as IEngineeringInputDataProvider; + Assert.NotNull(inputProvider); + + var vehicleInputData = inputProvider.JobInputData.Vehicle; + + var writer = JSONFileWriter.Instance; + + VECTO_Global.Cfg = new VECTO.Configuration() { DeclMode = true }; + writer.SaveGearbox(vehicleInputData.GearboxInputData, vehicleInputData.AxleGearInputData, outFile); + + var savedData = JSONInputDataFactory.ReadComponentData(outFile); + var savedInprovider = savedData as IEngineeringInputDataProvider; + Assert.NotNull(savedInprovider); + + AssertHelper.PublicPropertiesEqual(typeof(IGearboxDeclarationInputData), vehicleInputData.GearboxInputData, savedInprovider.JobInputData.Vehicle.GearboxInputData, + new[] { "Source" }); + AssertHelper.PublicPropertiesEqual(typeof(IAxleDeclarationInputData), vehicleInputData.AxleGearInputData, savedInprovider.JobInputData.Vehicle.AxleGearInputData, + new[] { "Source" }); + } + + + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/324kW.vfld b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/324kW.vfld new file mode 100644 index 0000000000000000000000000000000000000000..d305e26d47414e8d519363447a258f5106b038c6 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/324kW.vfld @@ -0,0 +1,11 @@ +engine speed [1/min],full load torque [Nm],motoring torque [Nm],PT1 [s] +600,1258,-150,0.24 +800,1758,-155,0.47 +1000,2140,-165,0.58 +1200,2146,-179,0.53 +1400,2109,-203,0.46 +1600,1903,-235,0.349999999 +1800,1719,-264,0.2 +2000,1259,-301,0.11 +2100,1079,-320,0.11 +2200,0,-339,0.11 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/350kW.vmap b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/350kW.vmap new file mode 100644 index 0000000000000000000000000000000000000000..4ae21e4b8e35fadfbc04b5a17e06365cb6128c4f --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/350kW.vmap @@ -0,0 +1,107 @@ +engine speed [rpm],torque [Nm],fuel consumption [g/h] +600,-150,0 +600,0,1459 +600,200,3358 +600,400,5498 +600,600,8101 +600,800,10014 +600,1000,12071 +600,1200,14400 +600,1282,15350 +800,-155,0 +800,0,1879 +800,200,4286 +800,400,7350 +800,600,10059 +800,800,13086 +800,1000,16015 +800,1200,19239 +800,1400,22426 +800,1600,25600 +800,1791,28905 +1000,-165,0 +1000,0,2865 +1000,200,5963 +1000,400,9198 +1000,600,12354 +1000,800,15965 +1000,1000,19864 +1000,1200,23530 +1000,1400,27202 +1000,1600,31165 +1000,1800,35103 +1000,2000,39360 +1000,2200,44120 +1000,2300,46836 +1200,-179,0 +1200,0,3307 +1200,200,6897 +1200,400,10651 +1200,600,14645 +1200,800,19115 +1200,1000,23677 +1200,1200,28180 +1200,1400,32431 +1200,1600,37000 +1200,1800,41691 +1200,2000,46915 +1200,2200,51783 +1200,2300,54932 +1400,-203,0 +1400,0,4306 +1400,200,8143 +1400,400,12723 +1400,600,17523 +1400,800,22288 +1400,1000,27093 +1400,1200,32536 +1400,1400,37746 +1400,1600,43194 +1400,1800,49453 +1400,2000,55750 +1400,2200,61072 +1400,2300,64377 +1600,-235,0 +1600,0,5209 +1600,200,9669 +1600,400,14838 +1600,600,20127 +1600,800,25894 +1600,1000,31631 +1600,1200,37248 +1600,1400,43450 +1600,1600,49752 +1600,1800,57020 +1600,2000,63914 +1600,2079,66520 +1800,-264,0 +1800,0,6409 +1800,200,11777 +1800,400,17320 +1800,600,23394 +1800,800,30501 +1800,1000,36378 +1800,1200,43079 +1800,1400,50250 +1800,1600,57436 +1800,1800,65157 +1800,1857,67574 +2000,-301,0 +2000,0,9127 +2000,200,14822 +2000,400,20655 +2000,600,27076 +2000,800,34188 +2000,1000,42837 +2000,1200,51018 +2000,1352,56618 +2100,-320,0 +2100,0,10470 +2100,200,16332 +2100,400,22396 +2100,600,28914 +2100,800,35717 +2100,1000,45643 +2100,1100,50653 +2200,-339,0 +2200,0,13444.59908 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/AMT_12.vgbx b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/AMT_12.vgbx new file mode 100644 index 0000000000000000000000000000000000000000..9b717385f7785d878458cf77a0a1ca325643402c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/AMT_12.vgbx @@ -0,0 +1,117 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2017-05-19T08:19:13.4575457Z", + "AppVersion": "3", + "FileVersion": 6 + }, + "Body": { + "SavedInDeclMode": true, + "ModelName": "tractor_12gear_example", + "Inertia": 0.0, + "TracInt": 1.0, + "Gears": [ + { + "Ratio": 2.64, + "LossMap": "Axle_4x2.vtlm" + }, + { + "Ratio": 14.93, + "LossMap": "Gear_1.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 11.64, + "LossMap": "Gear_2.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 9.02, + "LossMap": "Gear_3.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 7.04, + "LossMap": "Gear_4.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 5.64, + "LossMap": "Gear_5.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 4.4, + "LossMap": "Gear_6.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 3.39, + "LossMap": "Gear_7.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 2.65, + "LossMap": "Gear_8.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 2.05, + "LossMap": "Gear_9.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 1.6, + "LossMap": "Gear_10.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 1.28, + "LossMap": "Gear_11.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + }, + { + "Ratio": 1.0, + "LossMap": "Gear_12.vtlm", + "ShiftPolygon": "", + "MaxTorque": "", + "MaxSpeed": "" + } + ], + "TqReserve": 20.0, + "ShiftTime": 1.5, + "StartTqReserve": 20.0, + "StartSpeed": 1.3, + "StartAcc": 0.6, + "GearboxType": "AMT", + "TorqueConverter": { + "Enabled": false + }, + "DownshiftAfterUpshiftDelay": 10.0, + "UpshiftAfterDownshiftDelay": 10.0, + "UpshiftMinAcceleration": 0.1, + "PowershiftShiftTime": 0.8 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Axle_4x2.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Axle_4x2.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..e11cbf7cdde175e06ab8f6a0b79d46b84b3e0c1a --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Axle_4x2.vtlm @@ -0,0 +1,317 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-5478,220 +0,-176,28 +0,0,8 +0,116,14 +0,220,17 +0,326,21 +0,432,24 +0,641,31 +0,853,38 +0,1274,53 +0,1696,67 +0,2117,82 +0,2538,96 +0,2959,110 +0,3376,119 +0,3785,123 +0,4200,130 +0,6309,204 +0,8409,268 +0,10507,332 +0,12606,396 +0,16804,523 +0,21002,651 +0,25199,778 +0,29397,905 +0,33594,1032 +0,37792,1160 +0,41990,1288 +0,46187,1415 +0,50385,1542 +143,-5482,216 +143,-174,28 +143,0,9 +143,116,14 +143,222,17 +143,326,21 +143,432,24 +143,641,31 +143,853,38 +143,1273,52 +143,1694,66 +143,2115,80 +143,2536,94 +143,2957,108 +143,3372,116 +143,3786,123 +143,4200,130 +143,6323,218 +143,8427,287 +143,10532,356 +143,12635,425 +143,16843,563 +143,21052,701 +143,25260,839 +143,29467,977 +143,33676,1115 +143,37884,1253 +143,42092,1391 +143,46300,1529 +143,50509,1667 +285,-5496,202 +285,-172,32 +285,0,10 +285,118,16 +285,223,19 +285,327,22 +285,432,24 +285,641,31 +285,851,37 +285,1271,50 +285,1690,63 +285,2110,75 +285,2530,88 +285,2950,101 +285,3369,113 +285,3780,117 +285,4195,124 +285,6305,200 +285,8402,262 +285,10499,324 +285,12596,386 +285,16791,510 +285,20987,636 +285,25181,760 +285,29376,884 +285,33570,1009 +285,37765,1133 +285,41960,1259 +285,46154,1383 +285,50350,1507 +428,-5501,200 +428,-167,35 +428,0,12 +428,119,17 +428,224,21 +428,328,23 +428,433,26 +428,643,31 +428,851,37 +428,1270,49 +428,1689,61 +428,2109,74 +428,2529,87 +428,2949,100 +428,3365,109 +428,3778,115 +428,4191,121 +428,6296,191 +428,8390,251 +428,10485,310 +428,12579,369 +428,16767,486 +428,20955,604 +428,25143,723 +428,29332,841 +428,33521,958 +428,37708,1076 +428,41897,1195 +428,46084,1313 +428,50273,1430 +570,-5512,188 +570,-167,37 +570,0,13 +570,121,19 +570,224,21 +570,328,23 +570,433,26 +570,641,31 +570,850,36 +570,1268,46 +570,1685,58 +570,2104,70 +570,2523,81 +570,2943,94 +570,3363,107 +570,3776,113 +570,4189,118 +570,6281,175 +570,8369,230 +570,10459,283 +570,12547,336 +570,16724,443 +570,20901,550 +570,25078,658 +570,29255,764 +570,33432,871 +570,37611,979 +570,41788,1086 +570,45965,1192 +570,50142,1299 +713,-5517,181 +713,-165,39 +713,0,14 +713,122,20 +713,225,22 +713,329,24 +713,433,27 +713,641,30 +713,850,36 +713,1267,45 +713,1684,56 +713,2102,67 +713,2521,79 +713,2939,90 +713,3358,102 +713,3775,111 +713,4188,118 +713,6272,166 +713,8357,217 +713,10442,267 +713,12527,317 +713,16697,416 +713,20867,517 +713,25039,617 +713,29209,717 +713,33379,818 +713,37549,918 +713,41719,1017 +713,45890,1117 +713,50060,1218 +855,-5524,174 +855,-162,42 +855,0,15 +855,122,21 +855,226,22 +855,329,24 +855,434,27 +855,641,31 +855,849,35 +855,1266,45 +855,1683,55 +855,2100,65 +855,2518,77 +855,2937,87 +855,3355,99 +855,3775,111 +855,4188,117 +855,6264,158 +855,8346,205 +855,10427,252 +855,12509,299 +855,16674,393 +855,20838,487 +855,25003,581 +855,29167,675 +855,33330,769 +855,37495,863 +855,41659,957 +855,45823,1051 +855,49988,1145 +998,-5526,172 +998,-160,44 +998,0,16 +998,123,22 +998,227,23 +998,331,26 +998,435,28 +998,641,31 +998,850,36 +998,1266,45 +998,1682,55 +998,2100,64 +998,2517,74 +998,2935,86 +998,3354,97 +998,3772,109 +998,4185,115 +998,6258,153 +998,8338,197 +998,10418,242 +998,12498,288 +998,16658,377 +998,20817,466 +998,24977,556 +998,29137,645 +998,33297,735 +998,37456,825 +998,41616,914 +998,45776,1003 +998,49936,1093 +1140,-5529,169 +1140,-158,46 +1140,0,18 +1140,125,23 +1140,229,24 +1140,332,27 +1140,436,29 +1140,643,32 +1140,851,37 +1140,1267,45 +1140,1683,55 +1140,2100,64 +1140,2516,74 +1140,2934,85 +1140,3352,96 +1140,3771,108 +1140,4183,114 +1283,-5529,169 +1283,-155,49 +1283,0,19 +1283,126,24 +1283,230,26 +1283,333,28 +1283,437,30 +1283,644,34 +1283,853,38 +1283,1267,46 +1283,1683,55 +1283,2098,64 +1283,2516,74 +1283,2934,85 +1283,3351,95 +1283,3764,101 +1425,-5531,167 +1425,-153,51 +1425,0,20 +1425,128,26 +1425,231,27 +1425,336,30 +1425,436,29 +1425,646,36 +1425,853,38 +1425,1268,46 +1425,1683,55 +1425,2098,63 +1425,2516,73 +1425,2932,84 +1425,3345,89 +1568,-5538,160 +1568,-148,56 +1568,0,21 +1568,129,28 +1568,232,29 +1568,336,31 +1568,440,32 +1568,647,37 +1568,854,41 +1568,1269,48 +1568,1684,57 +1568,2101,65 +1568,2517,74 +1568,2929,80 +1853,-5540,158 +1853,-144,60 +1853,0,24 +1853,132,30 +1853,234,31 +1853,340,34 +1853,442,35 +1853,650,38 +1853,856,42 +1853,1269,49 +1853,1684,57 +1853,2098,64 +1853,2515,73 +1853,2928,79 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck.vveh b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck.vveh new file mode 100644 index 0000000000000000000000000000000000000000..3bd49af68ee95788da316d6944aaf949686f4910 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck.vveh @@ -0,0 +1,70 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2017-07-03T14:48:16.7076880Z", + "AppVersion": "3", + "FileVersion": 7 + }, + "Body": { + "SavedInDeclMode": true, + "VehCat": "RigidTruck", + "LegislativeClass": "N3", + "CurbWeight": 9300.0, + "CurbWeightExtra": 0.0, + "Loading": 0.0, + "MassMax": 26.0, + "rdyn": 0.0, + "CdCorrMode": "CdofVdecl", + "CdCorrFile": "", + "Retarder": { + "Type": "secondary", + "Ratio": 1.0, + "File": "Retarder.vrlm" + }, + "Angledrive": { + "Type": "None", + "Ratio": "NaN", + "LossMap": "" + }, + "PTO": { + "Type": "drive shaft and/or more than 2 gear wheels - multi-disc clutch, oil pump", + "LossMap": "", + "Cycle": "" + }, + "TorqueLimits": {}, + "IdlingSpeed": 600.0, + "AxleConfig": { + "Type": "6x2", + "Axles": [ + { + "Inertia": 14.9, + "Wheels": "315/70 R22.5", + "AxleWeightShare": 0.0, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 33350.0, + "Type": "VehicleNonDriven" + }, + { + "Inertia": 14.9, + "Wheels": "315/70 R22.5", + "AxleWeightShare": 0.0, + "TwinTyres": true, + "RRCISO": 0.0055, + "FzISO": 33350.0, + "Type": "VehicleDriven" + }, + { + "Inertia": 14.9, + "Wheels": "315/70 R22.5", + "AxleWeightShare": 0.0, + "TwinTyres": false, + "RRCISO": 0.0055, + "FzISO": 33350.0, + "Type": "VehicleNonDriven" + } + ] + }, + "CdA": 5.2 + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto new file mode 100644 index 0000000000000000000000000000000000000000..ef46306882fd865abf8d0c8fbc6723b65969c582 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Class9_RigidTruck_DECL.vecto @@ -0,0 +1,61 @@ +{ + "Header": { + "CreatedBy": " ()", + "Date": "2017-05-19T08:36:57.2458195Z", + "AppVersion": "3", + "FileVersion": 3 + }, + "Body": { + "SavedInDeclMode": true, + "EngineOnlyMode": false, + "VehicleFile": "Class9_RigidTruck.vveh", + "EngineFile": "Engine_324kW_12.7l.veng", + "GearboxFile": "AMT_12.vgbx", + "AuxiliaryAssembly": "Classic", + "AuxiliaryVersion": "CLASSIC", + "AdvancedAuxiliaryFilePath": "", + "Aux": [ + { + "ID": "FAN", + "Type": "Fan", + "Technology": [ + "Crankshaft mounted - On/off clutch" + ] + }, + { + "ID": "STP", + "Type": "Steering pump", + "Technology": [ + "Fixed displacement with elec. control" + ] + }, + { + "ID": "AC", + "Type": "HVAC", + "Technology": [ + "Default" + ] + }, + { + "ID": "ES", + "Type": "Electric System", + "Technology": [ + "Standard technology" + ] + }, + { + "ID": "PS", + "Type": "Pneumatic System", + "Technology": [ + "Medium Supply 2-stage + ESS + AMS" + ] + } + ], + "OverSpeedEcoRoll": { + "Mode": "Overspeed", + "MinSpeed": 50.0, + "OverSpeed": 5.0, + "UnderSpeed": 5.0 + } + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Engine_324kW_12.7l.veng b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Engine_324kW_12.7l.veng new file mode 100644 index 0000000000000000000000000000000000000000..268260fcd305c7db013a66502a1495d1d76d5ec7 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Engine_324kW_12.7l.veng @@ -0,0 +1,28 @@ +{ + "Header": { + "CreatedBy": "", + "Date": "2017-06-22T11:15:58.5117543Z", + "AppVersion": "3", + "FileVersion": 4 + }, + "Body": { + "SavedInDeclMode": true, + "ModelName": "324kW 7l Engine", + "Displacement": "7000", + "IdlingSpeed": 600.0, + "Inertia": 3.6, + "WHTC-Urban": 1.0, + "WHTC-Rural": 1.0, + "WHTC-Motorway": 1.0, + "WHTC-Engineering": 1.0, + "ColdHotBalancingFactor": 1.0, + "CFRegPer": 1.0, + "CFNCV": 1.0, + "RatedPower": 324000.0, + "RatedSpeed": 1600.0, + "MaxTorque": 2300.0, + "FuelType": 0, + "FullLoadCurve": "324kW.vfld", + "FuelMap": "350kW.vmap" + } +} \ No newline at end of file diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_1.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_1.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_1.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_10.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_10.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_10.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_11.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_11.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_11.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_12.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_12.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..4dfffd693b9b66d912044ed77371b0b6150c491c --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_12.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-2457,23 +0,-117,12 +0,0,5 +0,59,6 +0,293,7 +0,527,8 +0,761,9 +0,995,11 +0,1229,12 +0,1463,13 +0,1697,14 +0,1931,15 +0,2165,16 +0,2399,18 +0,2633,19 +0,2867,20 +100,-2457,26 +100,-117,14 +100,0,6 +100,59,7 +100,293,8 +100,527,9 +100,761,11 +100,995,12 +100,1229,13 +100,1463,14 +100,1697,15 +100,1931,16 +100,2165,18 +100,2399,19 +100,2633,20 +100,2867,21 +300,-2457,28 +300,-117,16 +300,0,7 +300,59,8 +300,293,9 +300,527,11 +300,761,12 +300,995,13 +300,1229,14 +300,1463,15 +300,1697,16 +300,1931,18 +300,2165,19 +300,2399,20 +300,2633,21 +300,2867,22 +500,-2457,30 +500,-117,19 +500,0,8 +500,59,9 +500,293,11 +500,527,12 +500,761,13 +500,995,14 +500,1229,15 +500,1463,16 +500,1697,18 +500,1931,19 +500,2165,20 +500,2399,21 +500,2633,22 +500,2867,23 +700,-2457,33 +700,-117,21 +700,0,9 +700,59,11 +700,293,12 +700,527,13 +700,761,14 +700,995,15 +700,1229,16 +700,1463,18 +700,1697,19 +700,1931,20 +700,2165,21 +700,2399,22 +700,2633,23 +700,2867,25 +900,-2457,35 +900,-117,23 +900,0,10 +900,59,12 +900,293,13 +900,527,14 +900,761,15 +900,995,16 +900,1229,18 +900,1463,19 +900,1697,20 +900,1931,21 +900,2165,22 +900,2399,23 +900,2633,25 +900,2867,26 +1100,-2457,37 +1100,-117,26 +1100,0,11 +1100,59,13 +1100,293,14 +1100,527,15 +1100,761,16 +1100,995,18 +1100,1229,19 +1100,1463,20 +1100,1697,21 +1100,1931,22 +1100,2165,23 +1100,2399,25 +1100,2633,26 +1100,2867,27 +1300,-2457,40 +1300,-117,28 +1300,0,12 +1300,59,14 +1300,293,15 +1300,527,16 +1300,761,18 +1300,995,19 +1300,1229,20 +1300,1463,21 +1300,1697,22 +1300,1931,23 +1300,2165,25 +1300,2399,26 +1300,2633,27 +1300,2867,28 +1500,-2457,42 +1500,-117,30 +1500,0,13 +1500,59,15 +1500,293,16 +1500,527,18 +1500,761,19 +1500,995,20 +1500,1229,21 +1500,1463,22 +1500,1697,23 +1500,1931,25 +1500,2165,26 +1500,2399,27 +1500,2633,28 +1500,2867,29 +1700,-2457,44 +1700,-117,33 +1700,0,14 +1700,59,16 +1700,293,18 +1700,527,19 +1700,761,20 +1700,995,21 +1700,1229,22 +1700,1463,23 +1700,1697,25 +1700,1931,26 +1700,2165,27 +1700,2399,28 +1700,2633,29 +1700,2867,30 +1900,-2457,47 +1900,-117,35 +1900,0,15 +1900,59,18 +1900,293,19 +1900,527,20 +1900,761,21 +1900,995,22 +1900,1229,23 +1900,1463,25 +1900,1697,26 +1900,1931,27 +1900,2165,28 +1900,2399,29 +1900,2633,30 +1900,2867,32 +2100,-2457,49 +2100,-117,37 +2100,0,16 +2100,59,19 +2100,293,20 +2100,527,21 +2100,761,22 +2100,995,23 +2100,1229,25 +2100,1463,26 +2100,1697,27 +2100,1931,28 +2100,2165,29 +2100,2399,30 +2100,2633,32 +2100,2867,33 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_2.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_2.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_2.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_3.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_3.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_3.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_4.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_4.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_4.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_5.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_5.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_5.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_6.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_6.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_6.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_7.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_7.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_7.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_8.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_8.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_8.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_9.vtlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_9.vtlm new file mode 100644 index 0000000000000000000000000000000000000000..211ceb1b69b3215b8eb6cfe3b87fc7c9953f9b71 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Gear_9.vtlm @@ -0,0 +1,193 @@ +Input Speed [rpm],Input Torque [Nm],Torque Loss [Nm] +0,-812,28 +0,-348,19 +0,0,5 +0,58,7 +0,290,12 +0,522,16 +0,754,21 +0,986,26 +0,1218,30 +0,1450,35 +0,1682,39 +0,1914,44 +0,2146,49 +0,2378,53 +0,2610,58 +0,2842,63 +100,-812,30 +100,-348,21 +100,0,6 +100,58,8 +100,290,13 +100,522,17 +100,754,22 +100,986,27 +100,1218,31 +100,1450,36 +100,1682,41 +100,1914,45 +100,2146,50 +100,2378,55 +100,2610,59 +100,2842,64 +300,-812,32 +300,-348,23 +300,0,7 +300,58,9 +300,290,14 +300,522,19 +300,754,23 +300,986,28 +300,1218,32 +300,1450,37 +300,1682,42 +300,1914,46 +300,2146,51 +300,2378,56 +300,2610,60 +300,2842,65 +500,-812,35 +500,-348,26 +500,0,8 +500,58,10 +500,290,15 +500,522,20 +500,754,24 +500,986,29 +500,1218,34 +500,1450,38 +500,1682,43 +500,1914,48 +500,2146,52 +500,2378,57 +500,2610,61 +500,2842,66 +700,-812,37 +700,-348,28 +700,0,9 +700,58,12 +700,290,16 +700,522,21 +700,754,26 +700,986,30 +700,1218,35 +700,1450,39 +700,1682,44 +700,1914,49 +700,2146,53 +700,2378,58 +700,2610,63 +700,2842,67 +900,-812,39 +900,-348,30 +900,0,10 +900,58,13 +900,290,17 +900,522,22 +900,754,27 +900,986,31 +900,1218,36 +900,1450,41 +900,1682,45 +900,1914,50 +900,2146,55 +900,2378,59 +900,2610,64 +900,2842,68 +1100,-812,42 +1100,-348,32 +1100,0,11 +1100,58,14 +1100,290,19 +1100,522,23 +1100,754,28 +1100,986,32 +1100,1218,37 +1100,1450,42 +1100,1682,46 +1100,1914,51 +1100,2146,56 +1100,2378,60 +1100,2610,65 +1100,2842,70 +1300,-812,44 +1300,-348,35 +1300,0,12 +1300,58,15 +1300,290,20 +1300,522,24 +1300,754,29 +1300,986,34 +1300,1218,38 +1300,1450,43 +1300,1682,48 +1300,1914,52 +1300,2146,57 +1300,2378,61 +1300,2610,66 +1300,2842,71 +1500,-812,46 +1500,-348,37 +1500,0,13 +1500,58,16 +1500,290,21 +1500,522,26 +1500,754,30 +1500,986,35 +1500,1218,39 +1500,1450,44 +1500,1682,49 +1500,1914,53 +1500,2146,58 +1500,2378,63 +1500,2610,67 +1500,2842,72 +1700,-812,49 +1700,-348,39 +1700,0,14 +1700,58,17 +1700,290,22 +1700,522,27 +1700,754,31 +1700,986,36 +1700,1218,41 +1700,1450,45 +1700,1682,50 +1700,1914,55 +1700,2146,59 +1700,2378,64 +1700,2610,68 +1700,2842,73 +1900,-812,51 +1900,-348,42 +1900,0,15 +1900,58,19 +1900,290,23 +1900,522,28 +1900,754,32 +1900,986,37 +1900,1218,42 +1900,1450,46 +1900,1682,51 +1900,1914,56 +1900,2146,60 +1900,2378,65 +1900,2610,70 +1900,2842,74 +2100,-812,53 +2100,-348,44 +2100,0,16 +2100,58,20 +2100,290,24 +2100,522,29 +2100,754,34 +2100,986,38 +2100,1218,43 +2100,1450,48 +2100,1682,52 +2100,1914,57 +2100,2146,61 +2100,2378,66 +2100,2610,71 +2100,2842,75 diff --git a/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Retarder.vrlm b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Retarder.vrlm new file mode 100644 index 0000000000000000000000000000000000000000..eb575b99973291e5414c4826da086c1f03a7f179 --- /dev/null +++ b/VectoCore/VectoCoreTest/TestData/Generic Vehicles/Declaration Mode/Class9_RigidTruck_6x2/Retarder.vrlm @@ -0,0 +1,32 @@ +Retarder Speed [1/min],Torque Loss [Nm] +0,10 +100,10 +200,10.1 +300,10.2 +400,10.3 +500,10.5 +600,10.7 +700,11 +800,11.3 +900,11.6 +1000,12 +1100,12.4 +1200,12.9 +1300,13.4 +1400,13.9 +1500,14.5 +1600,15.1 +1700,15.8 +1800,16.5 +1900,17.2 +2000,18 +2100,18.8 +2200,19.7 +2300,20.6 +2400,21.5 +2500,22.5 +2600,23.5 +2700,24.6 +2800,25.7 +2900,26.8 +3000,28 diff --git a/VectoCore/VectoCoreTest/Utils/AssertHelper.cs b/VectoCore/VectoCoreTest/Utils/AssertHelper.cs index 84305b74ba6d5102345b899f8dc9ed6ee1fec099..6fbbabf2fe62b0bcfcb8da811d750b3daa7d0e15 100644 --- a/VectoCore/VectoCoreTest/Utils/AssertHelper.cs +++ b/VectoCore/VectoCoreTest/Utils/AssertHelper.cs @@ -30,10 +30,16 @@ */ using System; +using System.Collections; +using System.Collections.Generic; +using System.Data; using System.Diagnostics; using System.Globalization; +using System.Linq; +using System.Reflection; using TUGraz.VectoCommon.Utils; using NUnit.Framework; +using TUGraz.VectoCommon.InputData; namespace TUGraz.VectoCore.Tests.Utils { @@ -105,5 +111,93 @@ namespace TUGraz.VectoCore.Tests.Utils "Given values are not equal. Expected: {0}, Actual: {1}, Difference: {3} (Tolerance Factor: {2}){4}", expected, actual, toleranceFactor, expected - actual, message)); } + + public static void PublicPropertiesEqual(Type t, object expected, object actual, string[] ignoredProperties = null) + { + const BindingFlags flags = + BindingFlags.Instance | BindingFlags.Public | + BindingFlags.FlattenHierarchy; + var properties = t.GetProperties(flags); + + foreach (var prop in properties) { + if (ignoredProperties != null && ignoredProperties.Contains(prop.Name)) { + continue; + } + object expectedVal = null; + try { + expectedVal = prop.GetValue(expected); + } catch (Exception) { + try { + prop.GetValue(actual); + Assert.Fail("expected value thew exception, but actual value not!"); + } catch (Exception) { + // both getters threw an exception - at least its the same... + continue; + } + } + var actualVal = prop.GetValue(actual); + var propertyType = prop.PropertyType; + if (expectedVal == null && actualVal == null) { + continue; + } + if (propertyType.IsPrimitive || propertyType == typeof(string)) { + Assert.AreEqual(expectedVal, actualVal); + } else if (propertyType == typeof(SI)) { + Assert.AreEqual((expectedVal as SI).Value(), (actualVal as SI).Value()); + Assert.AreEqual((expectedVal as SI).GetUnitString(), (actualVal as SI).GetUnitString()); + } else if (expectedVal is IEnumerable<object>) { + Assert.IsTrue(actualVal is IList); + var expectedEnumerable = (expectedVal as IEnumerable<object>).ToArray(); + Assert.IsTrue(actualVal is IEnumerable<object>); + var actualEnumerable = (actualVal as IEnumerable<object>).ToArray(); + Assert.AreEqual(expectedEnumerable.Length, actualEnumerable.Length); + if (expectedEnumerable.Length > 0) { + IterateElements(expectedEnumerable, actualEnumerable, ignoredProperties); + } + } else if(propertyType == typeof(TableData)) { + TableDataEquals(expectedVal as TableData, actualVal as TableData); + } else { + PublicPropertiesEqual(propertyType, expectedVal, actualVal, ignoredProperties); + } + } + + } + + private static void TableDataEquals(TableData expected, TableData actual) + { + Assert.NotNull(expected); + Assert.NotNull(actual); + + Assert.AreEqual(expected.Columns.Count, actual.Columns.Count); + Assert.AreEqual(expected.Rows.Count, actual.Rows.Count); + + foreach (DataColumn expectedCol in expected.Columns) { + Assert.NotNull(actual.Columns[expectedCol.ColumnName]); + } + + //foreach (DataRow row in expected.Rows) { + for (var i = 0 ; i< expected.Rows.Count; i++) { + var expectedRow = expected.Rows[i]; + var actualRow = actual.Rows[i]; + foreach (DataColumn col in expected.Columns) { + var value = expectedRow[col]; + if (value is ConvertedSI) { + Assert.AreEqual((value as ConvertedSI).Value, (actualRow[col] as ConvertedSI).Value); + } + if (value.GetType().IsPrimitive) { + Assert.AreEqual(value, actualRow[col]); + } + } + } + //CollectionAssert.AreEqual(expected.Rows, actual.Rows); + + } + + private static void IterateElements(IEnumerable<object> expected, IEnumerable<object> actual, string[] ignoredProperties = null) + { + foreach (var entry in expected.Zip(actual, Tuple.Create)) { + PublicPropertiesEqual(entry.Item1.GetType() ,entry.Item1, entry.Item2, ignoredProperties); + } + } } } diff --git a/VectoCore/VectoCoreTest/VectoCoreTest.csproj b/VectoCore/VectoCoreTest/VectoCoreTest.csproj index c2f426ba7c09a9ea0604f68fee93a14e88cce305..fc2a8227dbbf7d69b4daa8683edb0bfc9235539e 100644 --- a/VectoCore/VectoCoreTest/VectoCoreTest.csproj +++ b/VectoCore/VectoCoreTest/VectoCoreTest.csproj @@ -72,8 +72,9 @@ <ItemGroup> <Compile Include="Dummy\EngineFLDTest.cs" /> <Compile Include="Exceptions\ExceptionTests.cs" /> + <Compile Include="FileIO\JsonWriteTest.cs" /> <Compile Include="FileIO\VectoCSVFileTest.cs" /> - <Compile Include="FileIO\JsonTest.cs" /> + <Compile Include="FileIO\JsonReadTest.cs" /> <Compile Include="FileIO\SimulationDataReaderTest.cs" /> <Compile Include="GraphProgram.cs" /> <Compile Include="Integration\ATPowerTrain.cs" /> @@ -183,6 +184,10 @@ <Project>{79a066ad-69a9-4223-90f6-6ed5d2d084f4}</Project> <Name>VectoCommon</Name> </ProjectReference> + <ProjectReference Include="..\..\VECTO\VECTO.vbproj"> + <Project>{AAC0F132-0A9F-45B3-B682-77AC9B24B352}</Project> + <Name>VECTO</Name> + </ProjectReference> <ProjectReference Include="..\VectoCore\VectoCore.csproj"> <Project>{cd36938a-add9-4c65-96da-b397cdeea90a}</Project> <Name>VectoCore</Name> @@ -473,6 +478,66 @@ <None Include="TestData\Generic Vehicles\Declaration Mode\40t Long Haul Truck\Retarder.vrlm"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\324kW.vfld"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\350kW.vmap"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\AMT_12.vgbx"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Axle_4x2.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Class9_RigidTruck.vveh"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Class9_RigidTruck_DECL.vecto"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Engine_324kW_12.7l.veng"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_1.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_10.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_11.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_12.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_2.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_3.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_4.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_5.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_6.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_7.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_8.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Gear_9.vtlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> + <None Include="TestData\Generic Vehicles\Declaration Mode\Class9_RigidTruck_6x2\Retarder.vrlm"> + <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> + </None> <None Include="TestData\Generic Vehicles\Engineering Mode\24t Coach\24t Coach.vcdv"> <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory> </None>