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
Commit 10b4f06f authored by VKMTHD\franzjosefkober's avatar VKMTHD\franzjosefkober
Browse files

added json reader test

parent 81e207ec
No related branches found
No related tags found
No related merge requests found
......@@ -57,12 +57,12 @@ Public Class cJSON
End If
Content = JsonConvert.DeserializeObject(File.ReadAllText(path), Content.GetType)
End sub
End Sub
Public Function ReadJSON(jobFile As String)
Public Function ReadJSON(jobFile As String) As cJob
Dim cJob As cJob = new cJob()
Dim cJob As cJob = New cJob()
Dim MsgSrc As String
Dim JSON As New cJSON
......@@ -73,9 +73,9 @@ Public Class cJSON
'Try
Dim body = JSON.Content("Body")
if (body is nothing) Then throw New Exception("Failed to read job-file - missing body")
If (body Is Nothing) Then Throw New Exception("Failed to read job-file - missing body")
Dim engine = body(JSONKeys.Engine)
if (engine is nothing) Then throw New Exception("failed to read job file - no engine parameters")
If (engine Is Nothing) Then Throw New Exception("failed to read job file - no engine parameters")
cJob.DualFuel = engine(JSONKeys.Engine_DualFuel)
cJob.WHR_ICE = engine(JSONKeys.Engine_WHR_ICE)
......@@ -95,7 +95,7 @@ Public Class cJSON
cJob.CertNumber = engine(JSONKeys.Engine_CertificationNumber)
Dim fuels = body(JSONKeys.Fuels)
if (fuels is nothing) Then throw new Exception("failed to read job file - no fuels")
If (fuels Is Nothing) Then Throw New Exception("failed to read job file - no fuels")
cJob.FCspecMeas_HotUrb = fuels(0)(JSONKeys.Fuel_WHTCUrban)
cJob.FCspecMeas_HotRur = fuels(0)(JSONKeys.Fuel_WHTCRural)
cJob.FCspecMeas_HotMw = fuels(0)(JSONKeys.Fuel_WHTCMotorway)
......@@ -106,10 +106,10 @@ Public Class cJSON
cJob.NCVfuel = fuels(0)(JSONKeys.Fuel_NCV)
Dim whr = body(JSONKeys.WHRSystem)
IF cJob.WHR_Mech = True Then
If (whr is nothing) Then throw new Exception("failed to read job file - missing whr data")
If cJob.WHR_Mech = True Then
If (whr Is Nothing) Then Throw New Exception("failed to read job file - missing whr data")
Dim whrMech = whr(JSONKeys.WHR_Mechanical)
if (whrMech is nothing) Then Throw new Exception("failed to read job file - missing electrical whr data")
If (whrMech Is Nothing) Then Throw New Exception("failed to read job file - missing electrical whr data")
cJob.FCspecMeas_HotUrbWHRMech = whrMech(JSONKeys.WHR_WHTCUrban)
cJob.FCspecMeas_HotRurWHRMech = whrMech(JSONKeys.WHR_WHTCRural)
cJob.FCspecMeas_HotMwWHRMech = whrMech(JSONKeys.WHR_WHTC_Motorway)
......@@ -119,9 +119,9 @@ Public Class cJSON
End If
If cJob.WHR_El = True Then
If (whr is nothing) Then throw new Exception("failed to read job file - missing whr data")
dim whrEl = whr(JSONKeys.WHR_Electrical)
if (whrEl is nothing) Then Throw new Exception("failed to read job file - missing electrical whr data")
If (whr Is Nothing) Then Throw New Exception("failed to read job file - missing whr data")
Dim whrEl = whr(JSONKeys.WHR_Electrical)
If (whrEl Is Nothing) Then Throw New Exception("failed to read job file - missing electrical whr data")
cJob.FCspecMeas_HotUrbWHREl = whrEl(JSONKeys.WHR_WHTCUrban)
cJob.FCspecMeas_HotRurWHREl = whrEl(JSONKeys.WHR_WHTCRural)
cJob.FCspecMeas_HotMwWHREl = whrEl(JSONKeys.WHR_WHTC_Motorway)
......
{
"Header": {
"CreatedBy": "",
"Date": "2019-12-17T15:47:13.8213475Z",
"AppVersion": "VECTO-Engine 1.5.0.1811",
"FileVersion": "1"
},
"Body": {
"Engine": {
"DualFuel": true,
"WHR ICE": false,
"WHR Mechanical": false,
"WHR Electrical": false,
"Manufacturer": "IVT at TU Graz",
"Model": "Best engine ever - Dual fuel",
"Displacement": 3000.0,
"RatedPower": 130,
"RatedSpeed": 2200,
"ParentFullConsumption": "Demo_Map_v1.5_DF.csv",
"ParentFullLoadCurve": "Demo_FullLoad_Parent_v1.5.csv",
"FullLoadCurve": "Demo_FullLoad_Child_v1.5.csv",
"MotoringCurve": "Demo_Motoring_v1.5.csv",
"ParentIdlingSpeed": 600.0,
"IdlingSpeed": 600.0,
"CertificationNumber": "*1234*"
},
"WHR": {},
"Fuels": [
{
"WHTCUrban": 211.1,
"WHTCRural": 201.7,
"WHTCMotorway": 196.3,
"ColdStartTotal": 205.6,
"HotStartTotal": 198.2,
"CFRegPer": 1.0,
"FuelType": "Natural Gas / CI",
"NCV": 48.7
},
{
"WHTCUrban": 25.6,
"WHTCRural": 19.2,
"WHTCMotorway": 15.1,
"ColdStartTotal": 23.0,
"HotStartTotal": 18.0,
"CFRegPer": 1.0,
"FuelType": "Diesel / CI",
"NCV": 42.5
}
]
}
}
\ No newline at end of file
{
"Header": {
"CreatedBy": "",
"Date": "2019-12-17T15:58:06.5779019Z",
"AppVersion": "VECTO-Engine 1.5.0.1811",
"FileVersion": "1"
},
"Body": {
"Engine": {
"DualFuel": true,
"WHR ICE": false,
"WHR Mechanical": false,
"WHR Electrical": true,
"Manufacturer": "IVT at TU Graz",
"Model": "Best engine ever - Dual fuel+WHR_el",
"Displacement": 3000.0,
"RatedPower": 130,
"RatedSpeed": 2200,
"ParentFullConsumption": "Demo_Map_v1.5_DF_WHRel.csv",
"ParentFullLoadCurve": "Demo_FullLoad_Parent_v1.5.csv",
"FullLoadCurve": "Demo_FullLoad_Child_v1.5.csv",
"MotoringCurve": "Demo_Motoring_v1.5.csv",
"ParentIdlingSpeed": 600.0,
"IdlingSpeed": 600.0,
"CertificationNumber": "*1234*"
},
"WHR": {
"electrical": {
"WHTCUrban": 49.2,
"WHTCRural": 55.4,
"WHTCMotorway": 75.3,
"ColdStartTotal": 23.0,
"HotStartTotal": 61.5,
"CFRegPer": 1.0
}
},
"Fuels": [
{
"WHTCUrban": 211.1,
"WHTCRural": 201.7,
"WHTCMotorway": 196.3,
"ColdStartTotal": 205.6,
"HotStartTotal": 198.2,
"CFRegPer": 1.0,
"FuelType": "Natural Gas / CI",
"NCV": 48.7
},
{
"WHTCUrban": 25.6,
"WHTCRural": 19.2,
"WHTCMotorway": 15.1,
"ColdStartTotal": 23.0,
"HotStartTotal": 18.0,
"CFRegPer": 1.0,
"FuelType": "Diesel / CI",
"NCV": 42.5
}
]
}
}
\ No newline at end of file
{
"Header": {
"CreatedBy": "",
"Date": "2019-12-17T15:58:59.4565785Z",
"AppVersion": "VECTO-Engine 1.5.0.1811",
"FileVersion": "1"
},
"Body": {
"Engine": {
"DualFuel": true,
"WHR ICE": false,
"WHR Mechanical": true,
"WHR Electrical": false,
"Manufacturer": "IVT at TU Graz",
"Model": "Best engine ever - Dual fuel+WHR_mech",
"Displacement": 3000.0,
"RatedPower": 130,
"RatedSpeed": 2200,
"ParentFullConsumption": "Demo_Map_v1.5_DF_WHRmech.csv",
"ParentFullLoadCurve": "Demo_FullLoad_Parent_v1.5.csv",
"FullLoadCurve": "Demo_FullLoad_Child_v1.5.csv",
"MotoringCurve": "Demo_Motoring_v1.5.csv",
"ParentIdlingSpeed": 600.0,
"IdlingSpeed": 600.0,
"CertificationNumber": "*1234*"
},
"WHR": {
"mechanical": {
"WHTCUrban": 49.2,
"WHTCRural": 55.4,
"WHTCMotorway": 75.3,
"ColdStartTotal": 23.0,
"HotStartTotal": 61.5,
"CFRegPer": 1.0
}
},
"Fuels": [
{
"WHTCUrban": 211.1,
"WHTCRural": 201.7,
"WHTCMotorway": 196.3,
"ColdStartTotal": 205.6,
"HotStartTotal": 198.2,
"CFRegPer": 1.0,
"FuelType": "Natural Gas / CI",
"NCV": 48.7
},
{
"WHTCUrban": 25.6,
"WHTCRural": 19.2,
"WHTCMotorway": 15.1,
"ColdStartTotal": 23.0,
"HotStartTotal": 18.0,
"CFRegPer": 1.0,
"FuelType": "Diesel / CI",
"NCV": 42.5
}
]
}
}
\ No newline at end of file
{
"Header": {
"CreatedBy": "",
"Date": "2019-12-17T15:38:40.9396868Z",
"AppVersion": "VECTO-Engine 1.5.0.1811",
"FileVersion": "1"
},
"Body": {
"Engine": {
"DualFuel": false,
"WHR ICE": false,
"WHR Mechanical": false,
"WHR Electrical": false,
"Manufacturer": "IVT at TU Graz",
"Model": "Best engine ever - Single fuel",
"Displacement": 3000.0,
"RatedPower": 130,
"RatedSpeed": 2200,
"ParentFullConsumption": "Demo_Map_v1.5.csv",
"ParentFullLoadCurve": "Demo_FullLoad_Parent_v1.5.csv",
"FullLoadCurve": "Demo_FullLoad_Child_v1.5.csv",
"MotoringCurve": "Demo_Motoring_v1.5.csv",
"ParentIdlingSpeed": 600.0,
"IdlingSpeed": 600.0,
"CertificationNumber": "*1234*"
},
"WHR": {},
"Fuels": [
{
"WHTCUrban": 211.1,
"WHTCRural": 201.7,
"WHTCMotorway": 196.3,
"ColdStartTotal": 205.6,
"HotStartTotal": 198.2,
"CFRegPer": 1.0,
"FuelType": "Diesel / CI",
"NCV": 42.5
}
]
}
}
\ No newline at end of file
{
"Header": {
"CreatedBy": "",
"Date": "2019-12-19T11:45:31.9475296Z",
"AppVersion": "VECTO-Engine 1.5.0.1811",
"FileVersion": "1"
},
"Body": {
"Engine": {
"DualFuel": false,
"WHR ICE": false,
"WHR Mechanical": false,
"WHR Electrical": true,
"Manufacturer": "IVT at TU Graz",
"Model": "Best engine ever - Single fuel+WHR_el",
"Displacement": 3000.0,
"RatedPower": 130,
"RatedSpeed": 2200,
"ParentFullConsumption": "Demo_Map_v1.5_DF_WHRel.csv",
"ParentFullLoadCurve": "Demo_FullLoad_Parent_v1.5.csv",
"FullLoadCurve": "Demo_FullLoad_Child_v1.5.csv",
"MotoringCurve": "Demo_Motoring_v1.5.csv",
"ParentIdlingSpeed": 600.0,
"IdlingSpeed": 600.0,
"CertificationNumber": "*1234*"
},
"WHR": {
"electrical": {
"WHTCUrban": 49.2,
"WHTCRural": 55.4,
"WHTCMotorway": 75.3,
"ColdStartTotal": 23.0,
"HotStartTotal": 61.5,
"CFRegPer": 1.0
}
},
"Fuels": [
{
"WHTCUrban": 211.1,
"WHTCRural": 201.7,
"WHTCMotorway": 196.3,
"ColdStartTotal": 205.6,
"HotStartTotal": 198.2,
"CFRegPer": 1.0,
"FuelType": "Diesel / CI",
"NCV": 42.5
}
]
}
}
\ No newline at end of file
using System.IO;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using VECTO_Engine;
namespace VectoEngineTest
{
[TestClass]
public class TestJsonReader
{
private string _dirPath;
[TestInitialize]
public void Init()
{
_dirPath = @"TestData/JsonInputFile";
}
[TestMethod]
public void TestJsonReaderDualFuel()
{
var filePath = GetFilePath("DemoEngineDualFuel.vep");
var json = new cJSON();
var job = json.ReadJSON(filePath);
TestEngineComponentData(job, "IVT at TU Graz", "Best engine ever - Dual fuel", "*1234*",
3000, 130, 2200);
TestEngineDataWHRSelection(job, true, false, false, false);
TestEngineDataFiles(job, "Demo_Map_v1.5_DF.csv", "Demo_FullLoad_Parent_v1.5.csv",
"Demo_FullLoad_Child_v1.5.csv", "Demo_Motoring_v1.5.csv");
TestEngineFuelData01(job, "Natural Gas / CI", 48.7, 205.6, 198.2, 211.1, 201.7, 196.3, 1.0);
TestEngineFuelData02(job, "Diesel / CI", 42.5, 23.0, 18.0, 25.6, 19.2, 15.1, 1.0);
}
[TestMethod]
public void TestJsonReaderDualFuelWHRel()
{
var filePath = GetFilePath("DemoEngineDualFuel_WHRel.vep");
var json = new cJSON();
var job = json.ReadJSON(filePath);
TestEngineComponentData(job, "IVT at TU Graz", "Best engine ever - Dual fuel+WHR_el", "*1234*",
3000, 130, 2200);
TestEngineDataFiles(job, "Demo_Map_v1.5_DF_WHRel.csv", "Demo_FullLoad_Parent_v1.5.csv",
"Demo_FullLoad_Child_v1.5.csv", "Demo_Motoring_v1.5.csv");
TestWHRElectrical(job, 23.0, 61.5, 49.2, 55.4, 75.3, 1.0);
TestEngineFuelData01(job, "Natural Gas / CI", 48.7, 205.6, 198.2, 211.1, 201.7, 196.3, 1.0);
TestEngineFuelData02(job, "Diesel / CI", 42.5, 23.0, 18.0, 25.6, 19.2, 15.1, 1.0);
}
[TestMethod]
public void TestJsonReaderDualFuelWHRMech()
{
var filePath = GetFilePath("DemoEngineDualFuel_WHRmech.vep");
var json = new cJSON();
var job = json.ReadJSON(filePath);
TestEngineComponentData(job, "IVT at TU Graz", "Best engine ever - Dual fuel+WHR_mech", "*1234*",
3000, 130, 2200);
TestEngineDataFiles(job, "Demo_Map_v1.5_DF_WHRmech.csv", "Demo_FullLoad_Parent_v1.5.csv",
"Demo_FullLoad_Child_v1.5.csv", "Demo_Motoring_v1.5.csv");
TestWHRMechanical(job, 23.0, 61.5, 49.2, 55.4, 75.3, 1.0);
TestEngineFuelData01(job, "Natural Gas / CI", 48.7, 205.6, 198.2, 211.1, 201.7, 196.3, 1.0);
TestEngineFuelData02(job, "Diesel / CI", 42.5, 23.0, 18.0, 25.6, 19.2, 15.1, 1.0);
}
[TestMethod]
public void TestJsonReaderSingleFuel()
{
var filePath = GetFilePath("DemoEngineSingleFuel.vep");
var json = new cJSON();
var job = json.ReadJSON(filePath);
TestEngineComponentData(job, "IVT at TU Graz", "Best engine ever - Single fuel", "*1234*",
3000, 130, 2200);
TestEngineDataFiles(job, "Demo_Map_v1.5.csv", "Demo_FullLoad_Parent_v1.5.csv",
"Demo_FullLoad_Child_v1.5.csv", "Demo_Motoring_v1.5.csv");
TestEngineFuelData01(job, "Diesel / CI", 42.5,205.6, 198.2, 211.1, 201.7, 196.3, 1.0);
}
[TestMethod]
public void TestJsonReaderSingleFuelWHRel()
{
var filePath = GetFilePath("DemoEngineSingleFuel_WHRel.vep");
var json = new cJSON();
var job = json.ReadJSON(filePath);
TestEngineComponentData(job, "IVT at TU Graz", "Best engine ever - Single fuel+WHR_el", "*1234*",
3000, 130, 2200);
TestEngineDataFiles(job, "Demo_Map_v1.5_DF_WHRel.csv", "Demo_FullLoad_Parent_v1.5.csv",
"Demo_FullLoad_Child_v1.5.csv", "Demo_Motoring_v1.5.csv");
TestWHRElectrical(job, 23.0, 61.5, 49.2, 55.4, 75.3, 1.0);
TestEngineFuelData01(job, "Diesel / CI", 42.5, 205.6, 198.2, 211.1, 201.7, 196.3, 1.0);
}
private void TestEngineComponentData(cJob job, string manufacturer, string model, string certNumber,
double displacement, double ratedPower, double ratedSpeed)
{
Assert.AreEqual(manufacturer, job.Manufacturer);
Assert.AreEqual(model, job.Model);
Assert.AreEqual(certNumber, job.CertNumber);
Assert.AreEqual(displacement, job.Displacement);
Assert.AreEqual(ratedPower, job.RatedPower);
Assert.AreEqual(ratedSpeed, job.RatedSpeed);
}
private void TestEngineDataWHRSelection(cJob job, bool dualFuel, bool whrICE, bool whrMech,
bool whrEL)
{
Assert.AreEqual(dualFuel, job.DualFuel);
Assert.AreEqual(whrMech, job.WHR_Mech);
Assert.AreEqual(whrICE, job.WHR_ICE);
Assert.AreEqual(whrEL, job.WHR_El);
}
private void TestEngineDataFiles(cJob job, string fcParent, string flParent, string flCurve,
string motoringParent)
{
Assert.AreEqual(fcParent, job.MapFile);
Assert.AreEqual(flParent, job.FlcParentFile);
Assert.AreEqual(flCurve, job.FlcFile);
Assert.AreEqual(motoringParent, job.DragFile);
}
private void TestEngineFuelData01(cJob job, string type, double ncv, double whtcCold, double whtcHot,
double whtcUrban, double whtcRural, double whtcMotorway, double cfRegPer)
{
Assert.AreEqual(type, job.FuelType);
Assert.AreEqual(ncv, job.NCVfuel);
Assert.AreEqual(whtcCold, job.FCspecMeas_ColdTot);
Assert.AreEqual(whtcHot, job.FCspecMeas_HotTot);
Assert.AreEqual(whtcUrban, job.FCspecMeas_HotUrb);
Assert.AreEqual(whtcRural, job.FCspecMeas_HotRur);
Assert.AreEqual(whtcMotorway, job.FCspecMeas_HotMw);
Assert.AreEqual(cfRegPer, job.CF_RegPer);
}
private void TestEngineFuelData02(cJob job, string type, double ncv, double whtcCold, double whtcHot,
double whtcUrban, double whtcRural, double whtcMotorway, double cfRegPer)
{
Assert.AreEqual(type, job.FuelType2);
Assert.AreEqual(ncv, job.NCVfuel2);
Assert.AreEqual(whtcCold, job.FCspecMeas_ColdTot2);
Assert.AreEqual(whtcHot, job.FCspecMeas_HotTot2);
Assert.AreEqual(whtcUrban, job.FCspecMeas_HotUrb2);
Assert.AreEqual(whtcRural, job.FCspecMeas_HotRur2);
Assert.AreEqual(whtcMotorway, job.FCspecMeas_HotMw2);
Assert.AreEqual(cfRegPer, job.CF_RegPer2);
}
private void TestWHRElectrical(cJob job, double whtcCold, double whtcHot, double whtcUrban,
double whtcRural, double whtcMotorway, double cfRegPer)
{
Assert.AreEqual(whtcCold, job.FCspecMeas_ColdTotWHREl);
Assert.AreEqual(whtcHot, job.FCspecMeas_HotTotWHREl);
Assert.AreEqual(whtcUrban, job.FCspecMeas_HotUrbWHREl);
Assert.AreEqual(whtcRural, job.FCspecMeas_HotRurWHREl);
Assert.AreEqual(whtcMotorway, job.FCspecMeas_HotMwWHREl);
Assert.AreEqual(cfRegPer, job.CF_RegPerWHREl);
}
private void TestWHRMechanical(cJob job, double whtcCold, double whtcHot, double whtcUrban,
double whtcRural, double whtcMotorway, double cfRegPer)
{
Assert.AreEqual(whtcCold, job.FCspecMeas_ColdTotWHRMech);
Assert.AreEqual(whtcHot, job.FCspecMeas_HotTotWHRMech);
Assert.AreEqual(whtcUrban, job.FCspecMeas_HotUrbWHRMech);
Assert.AreEqual(whtcRural, job.FCspecMeas_HotRurWHRMech);
Assert.AreEqual(whtcMotorway, job.FCspecMeas_HotMwWHRMech);
Assert.AreEqual(cfRegPer, job.CF_RegPerWHRMech);
}
private string GetFilePath(string fileName)
{
return Path.Combine(_dirPath, fileName);
}
}
}
......@@ -57,6 +57,7 @@
</Choose>
<ItemGroup>
<Compile Include="TestDualFuelEvaluation.cs" />
<Compile Include="TestJsonReader.cs" />
<Compile Include="TestVectoEngineRuns.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="TestWHREvaluation.cs" />
......@@ -93,6 +94,21 @@
<None Include="TestData\DualFuelAndWHR\Demo_Motoring_v1.5.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\JsonInputFile\DemoEngineDualFuel.vep">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\JsonInputFile\DemoEngineDualFuel_WHRel.vep">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\JsonInputFile\DemoEngineDualFuel_WHRmech.vep">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\JsonInputFile\DemoEngineSingleFuel.vep">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\JsonInputFile\DemoEngineSingleFuel_WHRel.vep">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="TestData\NegativeTorqueFullLoad_1.4\FullLoad_Child.csv">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment