Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Select Git revision
  • 0edd8d317a30f36e319c929c0a5385a62cdec095
  • stable default
  • feat-fchv-bus
  • fix-h2-ice-bus
  • powertrains-multiple-axles
  • amdm3/develop
  • issue-1039
  • amdm3/main
  • test/nuget_publish
  • IEPC-experiments
  • amdm2/main
  • amdm2/develop
  • aptngearbox-not-auto
  • playground
  • official/main
  • official/develop
  • issue-templates
  • pdf-reports
  • HEV-timeruns-dev
  • timerun-empower-hybrids
  • timerun-pwheel-hybrids
  • Release/v5.0.3
  • Release/v5.0.1
  • Release/5.0.0-RC
  • Nuget/v0.11.4-DEV
  • Release/v0.11.4-DEV
  • Release/4.3.4-DEV
  • Release/4.3.3
  • Release/4.3.2-RC
  • Release/v4.3.0-DEV
  • Release/4.2.7
  • XMLConverterTool/4.2.6.0
  • Release/4.2.6-RC
  • Release/v4.2.5
  • Release/v4.2.3
  • Release/v4.2.2.3539-RC
  • Release/v4.2.1.3469
  • Release/v0.11.2.3456-DEV
  • Release/v4.2.0.3448-RC
  • Release/v4.1.3.3415
  • Release/v4.1.1.3413
41 results

FuelConsumptionMapTest.cs

Blame
  • Forked from VECTO / VECTO Sim
    Source project has a limited visibility.
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    JsonReadHybridTest.cs 2.46 KiB
    using System.IO;
    using NUnit.Framework;
    using TUGraz.VectoCommon.Utils;
    using TUGraz.VectoCore.InputData.FileIO.JSON;
    using TUGraz.VectoCore.InputData.Reader.ComponentData;
    
    namespace TUGraz.VectoCore.Tests.FileIO
    {
    	[TestFixture]
    	public class JsonReadHybridTest
    	{
    
    		[OneTimeSetUp]
    		public void RunBeforeAnyTests()
    		{
    			Directory.SetCurrentDirectory(TestContext.CurrentContext.TestDirectory);
    		}
    
    		[TestCase()]
    		public void TestReadBatteryPack()
    		{
    			var inputProvider = JSONInputDataFactory.ReadBatteryData(@"TestData\Hybrids\Battery\GenericBattery.vbat", false);
    
    			Assert.AreEqual(14.SI(Unit.SI.Ampere.Hour), inputProvider.Capacity);
    			
    			var soc = inputProvider.Voltage;
    			Assert.AreEqual("0", soc.Rows[0][BatterySOCReader.Fields.StateOfCharge]);
    			Assert.AreEqual("590", soc.Rows[0][BatterySOCReader.Fields.BatteryVoltage]);
    
    			Assert.AreEqual(20, inputProvider.MinSOC);
    			Assert.AreEqual(80, inputProvider.MaxSOC);
    			Assert.AreEqual(5, inputProvider.MaxCurrentFactor);
    
    			var socMap = BatterySOCReader.Create(soc);
    
    			Assert.AreEqual(590, socMap.Lookup(0).Value());
    			Assert.AreEqual(658, socMap.Lookup(1).Value());
    			Assert.AreEqual(640, socMap.Lookup(0.5).Value());
    
    			Assert.AreEqual(639, socMap.Lookup(0.45).Value());
    		}
    
    		[TestCase()]
    		public void TestReadElectricMotor()
    		{
    			var inputProvider =
    				JSONInputDataFactory.ReadElectricMotorData(@"TestData\Hybrids\ElectricMotor\GenericEMotor.vem", false);
    
    			Assert.AreEqual(0.15, inputProvider.Inertia.Value(), 1e-6);
    
    			var fld = inputProvider.FullLoadCurve;
    			Assert.AreEqual("0", fld.Rows[0][ElectricFullLoadCurveReader.Fields.MotorSpeed]);
    			Assert.AreEqual("401.07", fld.Rows[0][ElectricFullLoadCurveReader.Fields.DrivingTorque]);
    			Assert.AreEqual("-401.07", fld.Rows[0][ElectricFullLoadCurveReader.Fields.GenerationTorque]);
    
    			var fldMap = ElectricFullLoadCurveReader.Create(fld);
    			Assert.AreEqual(401.07, fldMap.FullLoadDriveTorque(0.RPMtoRad()).Value());
    			Assert.AreEqual(-407.07, fldMap.FullGenerationTorque(0.RPMtoRad()).Value());
    
    			var pwr = inputProvider.EfficiencyMap;
    			Assert.AreEqual("0", pwr.Rows[0][ElectricMotorMapReader.Fields.MotorSpeed]);
    			Assert.AreEqual("-800", pwr.Rows[0][ElectricMotorMapReader.Fields.Torque]);
    			Assert.AreEqual("9.8449", pwr.Rows[0][ElectricMotorMapReader.Fields.PowerElectrical]);
    
    			var pwrMap = ElectricMotorMapReader.Create(pwr);
    			Assert.AreEqual(9844.9, pwrMap.LookupElectricPower(-0.RPMtoRad(), -800.SI<NewtonMeter>()).ElectricalPower.Value());
    		}
    
    	}
    }