From f3340220b34dee98c2ec80af59df7d6075ac8864 Mon Sep 17 00:00:00 2001
From: Markus Quaritsch <markus.quaritsch@tugraz.at>
Date: Wed, 20 Jul 2016 09:03:25 +0200
Subject: [PATCH] cleanup, make column names / headers of input files public
 (Fields classes)

---
 .../VectoAuxiliaries/AdvancedAuxiliaries.vb   |   3 +-
 .../VectoAuxiliaries/DownstreamModules/M10.vb |   4 -
 .../Models}/AuxiliaryDemandType.cs            |   2 +-
 VectoCommon/VectoCommon/Utils/EnumHelper.cs   |   3 +-
 VectoCommon/VectoCommon/Utils/VectoMath.cs    |   3 +-
 VectoCommon/VectoCommon/VectoCommon.csproj    |   1 +
 .../InputData/FileIO/JSON/JSONInputData.cs    |   2 +-
 .../InputData/Reader/FullLoadCurveReader.cs   |   8 +-
 .../Impl/EngineOnlyVectoRunDataFactory.cs     |   1 +
 .../EngineeringModeVectoRunDataFactory.cs     |   1 +
 .../VectoCore/Models/Declaration/Axle.cs      |   3 +-
 .../Models/Declaration/DeclarationData.cs     |   2 +-
 .../Models/Declaration/LACDecisionFactor.cs   | 145 ++++++++++--------
 .../VectoCore/Models/Declaration/Payloads.cs  |   4 +-
 .../Models/Declaration/StandardWeights.cs     |   4 +-
 .../Data/AccelerationCurve.cs                 |   2 +-
 .../Data/CrossWindCorrectionCurveReader.cs    |   2 +-
 .../Data/Engine/FuelConsumptionMap.cs         |   8 +-
 .../Data/Engine/PT1Curve.cs                   |   2 +-
 .../Data/RetarderLossMap.cs                   |   2 +-
 .../OutputData/SummaryDataContainer.cs        | 110 ++++++-------
 VectoCore/VectoCore/Utils/DelaunayMap.cs      |   1 +
 VectoCore/VectoCore/VectoCore.csproj          |   1 -
 .../Models/Declaration/ShiftPolygonTest.cs    |   2 +-
 .../SimulationComponentData/ValidationTest.cs |   1 +
 .../Utils/MockSimulationDataFactory.cs        |   1 +
 .../VectoCoreTest/Utils/ShiftPolygonDrawer.cs |   2 +-
 27 files changed, 171 insertions(+), 149 deletions(-)
 rename {VectoCore/VectoCore/Models/Simulation/Data => VectoCommon/VectoCommon/Models}/AuxiliaryDemandType.cs (96%)

diff --git a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb
index d63afd3287..95b2442c5c 100644
--- a/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb
+++ b/VECTOAux/VectoAuxiliaries/AdvancedAuxiliaries.vb
@@ -18,14 +18,13 @@ Imports VectoAuxiliaries.DownstreamModules
 Imports System.Windows.Forms
 Imports TUGraz.VectoCommon.Utils
 
+<Assembly: InternalsVisibleTo("VectoCore")> 
 
 ''' <summary>
 ''' Main entry point for the advanced auxiliary module. 
 ''' This class represents slide number 17 titled Calculations of Cycle FC accounting for Smart Auxiliaries.
 ''' </summary>
 ''' <remarks></remarks>
-<Assembly: InternalsVisibleTo("VectoCore")> 
-
 Public Class AdvancedAuxiliaries
 	Implements IAdvancedAuxiliaries
 
diff --git a/VECTOAux/VectoAuxiliaries/DownstreamModules/M10.vb b/VECTOAux/VectoAuxiliaries/DownstreamModules/M10.vb
index 1eb3be4564..9dbfca19b4 100644
--- a/VECTOAux/VectoAuxiliaries/DownstreamModules/M10.vb
+++ b/VECTOAux/VectoAuxiliaries/DownstreamModules/M10.vb
@@ -10,11 +10,7 @@
 ' See the LICENSE.txt for the specific language governing permissions and limitations.
 
 Imports TUGraz.VectoCommon.Utils
-Imports TUGraz.VectoCore.Utils
-Imports VectoAuxiliaries.Electrics
 Imports VectoAuxiliaries.Pneumatics
-Imports VectoAuxiliaries.Hvac
-Imports VectoAuxiliaries.DownstreamModules
 
 Namespace DownstreamModules
 	Public Class M10
diff --git a/VectoCore/VectoCore/Models/Simulation/Data/AuxiliaryDemandType.cs b/VectoCommon/VectoCommon/Models/AuxiliaryDemandType.cs
similarity index 96%
rename from VectoCore/VectoCore/Models/Simulation/Data/AuxiliaryDemandType.cs
rename to VectoCommon/VectoCommon/Models/AuxiliaryDemandType.cs
index 9a54347de0..178755547f 100644
--- a/VectoCore/VectoCore/Models/Simulation/Data/AuxiliaryDemandType.cs
+++ b/VectoCommon/VectoCommon/Models/AuxiliaryDemandType.cs
@@ -29,7 +29,7 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
-namespace TUGraz.VectoCore.Models.Simulation.Data
+namespace TUGraz.VectoCommon.Models
 {
 	public enum AuxiliaryDemandType
 	{
diff --git a/VectoCommon/VectoCommon/Utils/EnumHelper.cs b/VectoCommon/VectoCommon/Utils/EnumHelper.cs
index 51dd4b8ae5..ae34734bb6 100644
--- a/VectoCommon/VectoCommon/Utils/EnumHelper.cs
+++ b/VectoCommon/VectoCommon/Utils/EnumHelper.cs
@@ -33,6 +33,7 @@ using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Runtime.CompilerServices;
+using System.Text.RegularExpressions;
 
 namespace TUGraz.VectoCommon.Utils
 {
@@ -40,7 +41,7 @@ namespace TUGraz.VectoCommon.Utils
 	{
 		public static T ParseEnum<T>(this string s, bool ignoreCase = true)
 		{
-			return (T)Enum.Parse(typeof(T), s.RemoveWhitespace(), ignoreCase);
+			return (T)Enum.Parse(typeof(T), Regex.Replace(s, @"\s+", ""), ignoreCase);
 		}
 
 		public static IEnumerable<T> GetValues<T>()
diff --git a/VectoCommon/VectoCommon/Utils/VectoMath.cs b/VectoCommon/VectoCommon/Utils/VectoMath.cs
index ce8a82f79b..d7422f0806 100644
--- a/VectoCommon/VectoCommon/Utils/VectoMath.cs
+++ b/VectoCommon/VectoCommon/Utils/VectoMath.cs
@@ -35,9 +35,8 @@ using System.Diagnostics;
 using System.Linq;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
-using TUGraz.VectoCommon.Utils;
 
-namespace TUGraz.VectoCore.Utils
+namespace TUGraz.VectoCommon.Utils
 {
 	/// <summary>
 	/// Provides helper methods for mathematical functions.
diff --git a/VectoCommon/VectoCommon/VectoCommon.csproj b/VectoCommon/VectoCommon/VectoCommon.csproj
index f5af0adb6f..5d71c4763c 100644
--- a/VectoCommon/VectoCommon/VectoCommon.csproj
+++ b/VectoCommon/VectoCommon/VectoCommon.csproj
@@ -50,6 +50,7 @@
     <Compile Include="InputData\EngineeringInputData.cs" />
     <Compile Include="InputData\IInputDataProvider.cs" />
     <Compile Include="InputData\IntegrityStatus.cs" />
+    <Compile Include="Models\AuxiliaryDemandType.cs" />
     <Compile Include="Models\AuxiliaryModel.cs" />
     <Compile Include="Models\AxleConfiguration.cs" />
     <Compile Include="Models\CrossWindCorrectionMode.cs" />
diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
index 1891e8b274..ba8e070e11 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONInputData.cs
@@ -529,7 +529,7 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 				var auxData = new AuxiliaryDataInputData {
 					ID = aux.GetEx<string>("ID"),
 					Type = aux.GetEx<string>("Type"),
-					Technology = aux.GetEx<string>("Technology")
+					Technology = aux.GetEx<string>("Technology"),
 				};
 				if (aux["TechList"] != null) {
 					auxData.TechList = aux["TechList"].Select(x => x.ToString()).ToList(); //  .Select(x => x.ToString).ToArray();
diff --git a/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs b/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
index 5251974221..9eb37c7934 100644
--- a/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
+++ b/VectoCore/VectoCore/InputData/Reader/FullLoadCurveReader.cs
@@ -89,7 +89,11 @@ namespace TUGraz.VectoCore.InputData.Reader
 			if (declarationMode) {
 				tmp = new PT1();
 			} else {
-				tmp = PT1Curve.Create(data);
+				if (data.Columns.Count > 3) {
+					tmp = PT1Curve.Create(data);
+				} else {
+					tmp = new PT1();
+				}
 			}
 			entriesFld.Sort((entry1, entry2) => entry1.EngineSpeed.Value().CompareTo(entry2.EngineSpeed.Value()));
 			return new FullLoadCurve { FullLoadEntries = entriesFld, PT1Data = tmp };
@@ -123,7 +127,7 @@ namespace TUGraz.VectoCore.InputData.Reader
 		}
 
 
-		private static class Fields
+		public static class Fields
 		{
 			/// <summary>
 			/// [rpm] engine speed
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
index 1ef3792d93..a33c821ca1 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineOnlyVectoRunDataFactory.cs
@@ -33,6 +33,7 @@ using System.Collections.Generic;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
diff --git a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
index 5471403d36..cc05618314 100644
--- a/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
+++ b/VectoCore/VectoCore/InputData/Reader/Impl/EngineeringModeVectoRunDataFactory.cs
@@ -35,6 +35,7 @@ using System.Runtime.CompilerServices;
 using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using DriverData = TUGraz.VectoCore.Models.SimulationComponent.Data.DriverData;
 
diff --git a/VectoCore/VectoCore/Models/Declaration/Axle.cs b/VectoCore/VectoCore/Models/Declaration/Axle.cs
index 9b686af422..c902939bb1 100644
--- a/VectoCore/VectoCore/Models/Declaration/Axle.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Axle.cs
@@ -29,6 +29,7 @@
 *   Martin Rexeis, rexeis@ivt.tugraz.at, IVT, Graz University of Technology
 */
 
+using System;
 using System.ComponentModel.DataAnnotations;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
@@ -49,7 +50,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		[Required, SIRange(500, 100000)]
 		public Newton TyreTestLoad { get; internal set; }
 
-		[Required, SIRange(0, 1)]
+		[Required, SIRange(Double.MinValue, 1)]
 		public double AxleWeightShare { get; internal set; }
 
 		public bool TwinTyres { get; internal set; }
diff --git a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
index 4004ee086e..d0e4c82767 100644
--- a/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
+++ b/VectoCore/VectoCore/Models/Declaration/DeclarationData.cs
@@ -43,7 +43,7 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.Declaration
 {
-	internal class DeclarationData
+	public sealed class DeclarationData
 	{
 		private static DeclarationData _instance;
 		private Segments _segments;
diff --git a/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs b/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs
index e8de0c3b8d..355a2d7995 100644
--- a/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs
+++ b/VectoCore/VectoCore/Models/Declaration/LACDecisionFactor.cs
@@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 		/// <summary>
 		/// Class for Look Ahead Coasting Decision Factor (DF_coast)
 		/// </summary>
-		private sealed class DecisionFactor : LookupData<MeterPerSecond, MeterPerSecond, double>
+		public sealed class DecisionFactor : LookupData<MeterPerSecond, MeterPerSecond, double>
 		{
 			private readonly LACDecisionFactorVTarget _vTarget;
 			private readonly LACDecisionFactorVdrop _vDrop;
@@ -89,91 +89,106 @@ namespace TUGraz.VectoCore.Models.Declaration
 				return _offset - _scaling * _vTarget.Lookup(targetVelocity) * _vDrop.Lookup(velocityDrop);
 			}
 
+
 			protected override void ParseData(DataTable table) {}
+		}
+
+		public sealed class LACDecisionFactorVdrop : LookupData<MeterPerSecond, double>
+		{
+			private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.LAC-DF-Vdrop.csv";
 
-			private sealed class LACDecisionFactorVdrop : LookupData<MeterPerSecond, double>
+			public LACDecisionFactorVdrop()
 			{
-				private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.LAC-DF-Vdrop.csv";
+				ParseData(ReadCsvResource(ResourceId));
+			}
 
-				public LACDecisionFactorVdrop()
-				{
-					ParseData(ReadCsvResource(ResourceId));
-				}
+			public LACDecisionFactorVdrop(DataTable vDrop)
+			{
+				ParseData(vDrop ?? ReadCsvResource(ResourceId));
+			}
 
-				public LACDecisionFactorVdrop(DataTable vDrop)
-				{
-					ParseData(vDrop ?? ReadCsvResource(ResourceId));
+			public override double Lookup(MeterPerSecond targetVelocity)
+			{
+				var section = Data.GetSection(kv => kv.Key < targetVelocity);
+				return VectoMath.Interpolate(section.Item1.Key, section.Item2.Key, section.Item1.Value, section.Item2.Value,
+					targetVelocity);
+			}
+
+			protected override void ParseData(DataTable table)
+			{
+				if (table.Columns.Count < 2) {
+					throw new VectoException("LAC Decision Factor File for Vdrop must consist of at least 2 columns.");
 				}
 
-				public override double Lookup(MeterPerSecond targetVelocity)
-				{
-					var section = Data.GetSection(kv => kv.Key < targetVelocity);
-					return VectoMath.Interpolate(section.Item1.Key, section.Item2.Key, section.Item1.Value, section.Item2.Value,
-						targetVelocity);
+				if (table.Rows.Count < 2) {
+					throw new VectoException(
+						"LAC Decision Factor File for Vdrop must consist of at least two lines with numeric values (below file header)");
 				}
 
-				protected override void ParseData(DataTable table)
-				{
-					if (table.Columns.Count < 2) {
-						throw new VectoException("LAC Decision Factor File for Vdrop must consist of at least 2 columns.");
-					}
-
-					if (table.Rows.Count < 2) {
-						throw new VectoException(
-							"LAC Decision Factor File for Vdrop must consist of at least two lines with numeric values (below file header)");
-					}
-
-					if (table.Columns.Contains("v_target") && table.Columns.Contains("decision_factor")) {
-						Data = table.Rows.Cast<DataRow>()
-							.ToDictionary(r => r.ParseDouble("v_drop").KMPHtoMeterPerSecond(), r => r.ParseDouble("decision_factor"));
-					} else {
-						Data = table.Rows.Cast<DataRow>()
-							.ToDictionary(r => r.ParseDouble(0).KMPHtoMeterPerSecond(), r => r.ParseDouble(1));
-					}
+				if (table.Columns.Contains(Fields.VelocityDrop) && table.Columns.Contains(Fields.DecisionFactor)) {
+					Data = table.Rows.Cast<DataRow>()
+						.ToDictionary(r => r.ParseDouble(Fields.VelocityDrop).KMPHtoMeterPerSecond(),
+							r => r.ParseDouble(Fields.DecisionFactor));
+				} else {
+					Data = table.Rows.Cast<DataRow>()
+						.ToDictionary(r => r.ParseDouble(0).KMPHtoMeterPerSecond(), r => r.ParseDouble(1));
 				}
 			}
 
-			private sealed class LACDecisionFactorVTarget : LookupData<MeterPerSecond, double>
+			public static class Fields
 			{
-				private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.LAC-DF-Vtarget.csv";
+				public const string VelocityDrop = "v_drop";
+				public const string DecisionFactor = "decision_factor";
+			}
+		}
 
-				public LACDecisionFactorVTarget()
-				{
-					ParseData(ReadCsvResource(ResourceId));
-				}
+		public sealed class LACDecisionFactorVTarget : LookupData<MeterPerSecond, double>
+		{
+			private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.LAC-DF-Vtarget.csv";
+
+			public LACDecisionFactorVTarget()
+			{
+				ParseData(ReadCsvResource(ResourceId));
+			}
+
+			public LACDecisionFactorVTarget(DataTable vTargetLookup)
+			{
+				ParseData(vTargetLookup ?? ReadCsvResource(ResourceId));
+			}
 
-				public LACDecisionFactorVTarget(DataTable vTargetLookup)
-				{
-					ParseData(vTargetLookup ?? ReadCsvResource(ResourceId));
+			public override double Lookup(MeterPerSecond targetVelocity)
+			{
+				var section = Data.GetSection(kv => kv.Key < targetVelocity);
+				return VectoMath.Interpolate(section.Item1.Key, section.Item2.Key, section.Item1.Value, section.Item2.Value,
+					targetVelocity);
+			}
+
+			protected override void ParseData(DataTable table)
+			{
+				if (table.Columns.Count < 2) {
+					throw new VectoException("LAC Decision Factor File for Vtarget must consist of at least 2 columns.");
 				}
 
-				public override double Lookup(MeterPerSecond targetVelocity)
-				{
-					var section = Data.GetSection(kv => kv.Key < targetVelocity);
-					return VectoMath.Interpolate(section.Item1.Key, section.Item2.Key, section.Item1.Value, section.Item2.Value,
-						targetVelocity);
+				if (table.Rows.Count < 2) {
+					throw new VectoException(
+						"LAC Decision Factor File for Vtarget must consist of at least two lines with numeric values (below file header)");
 				}
 
-				protected override void ParseData(DataTable table)
-				{
-					if (table.Columns.Count < 2) {
-						throw new VectoException("LAC Decision Factor File for Vtarget must consist of at least 2 columns.");
-					}
-
-					if (table.Rows.Count < 2) {
-						throw new VectoException(
-							"LAC Decision Factor File for Vtarget must consist of at least two lines with numeric values (below file header)");
-					}
-
-					if (table.Columns.Contains("v_target") && table.Columns.Contains("decision_factor")) {
-						Data = table.Rows.Cast<DataRow>()
-							.ToDictionary(r => r.ParseDouble("v_target").KMPHtoMeterPerSecond(), r => r.ParseDouble("decision_factor"));
-					} else {
-						Data = table.Rows.Cast<DataRow>()
-							.ToDictionary(r => r.ParseDouble(0).KMPHtoMeterPerSecond(), r => r.ParseDouble(1));
-					}
+				if (table.Columns.Contains(Fields.TargetVelocity) && table.Columns.Contains(Fields.DecisionFactor)) {
+					Data = table.Rows.Cast<DataRow>()
+						.ToDictionary(r => r.ParseDouble(Fields.TargetVelocity).KMPHtoMeterPerSecond(),
+							r => r.ParseDouble(Fields.DecisionFactor));
+				} else {
+					Data = table.Rows.Cast<DataRow>()
+						.ToDictionary(r => r.ParseDouble(0).KMPHtoMeterPerSecond(), r => r.ParseDouble(1));
 				}
 			}
+
+			public static class Fields
+			{
+				public const string TargetVelocity = "v_target";
+				public const string DecisionFactor = "decision_factor";
+			}
 		}
 	}
 }
\ No newline at end of file
diff --git a/VectoCore/VectoCore/Models/Declaration/Payloads.cs b/VectoCore/VectoCore/Models/Declaration/Payloads.cs
index e78819a712..8e0e7a447b 100644
--- a/VectoCore/VectoCore/Models/Declaration/Payloads.cs
+++ b/VectoCore/VectoCore/Models/Declaration/Payloads.cs
@@ -6,9 +6,9 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.Declaration
 {
-	internal sealed class Payloads : LookupData<Kilogram, Payloads.PayloadEntry>
+	public sealed class Payloads : LookupData<Kilogram, Payloads.PayloadEntry>
 	{
-		internal sealed class PayloadEntry
+		public sealed class PayloadEntry
 		{
 			public Kilogram Payload50Percent;
 			public Kilogram Payload75Percent;
diff --git a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs b/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
index 44e0c52124..014d00dcd5 100644
--- a/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
+++ b/VectoCore/VectoCore/Models/Declaration/StandardWeights.cs
@@ -39,7 +39,7 @@ using TUGraz.VectoCore.Utils;
 
 namespace TUGraz.VectoCore.Models.Declaration
 {
-	internal sealed class StandardWeight
+	public sealed class StandardWeight
 	{
 		public Kilogram CurbWeight;
 		public Kilogram GrossVehicleWeight;
@@ -68,7 +68,7 @@ namespace TUGraz.VectoCore.Models.Declaration
 	///		Gross Vehicle Weight (=Maximum Allowed Weight), and 
 	///		MaxPayload.
 	/// </summary>
-	internal sealed class StandardWeights : LookupData<string, StandardWeight>
+	public sealed class StandardWeights : LookupData<string, StandardWeight>
 	{
 		private const string ResourceId = "TUGraz.VectoCore.Resources.Declaration.Body_Trailers_Weights.csv";
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs
index ca50bfcc17..9ed34ad998 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/AccelerationCurve.cs
@@ -235,7 +235,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			return m / k * Math.Exp((k * t).Value()) + b * t + c;
 		}
 
-		private static class Fields
+		public static class Fields
 		{
 			public const string Velocity = "v";
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/CrossWindCorrectionCurveReader.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/CrossWindCorrectionCurveReader.cs
index 8b401ad19e..d9ec305f2c 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/CrossWindCorrectionCurveReader.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/CrossWindCorrectionCurveReader.cs
@@ -161,7 +161,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			return columns.Contains(FieldsCdxABeta.Beta) && columns.Contains(FieldsCdxABeta.DeltaCdxA);
 		}
 
-		private static class FieldsCdxABeta
+		public static class FieldsCdxABeta
 		{
 			public const string Beta = "beta";
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs
index 783d16f4d6..4a88139444 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/FuelConsumptionMap.cs
@@ -122,18 +122,20 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 		{
 			// delaunay map needs is initialised with rpm, therefore the angularVelocity has to be converted.
 			var value = _fuelMap.Interpolate(torque.Value(), angularVelocity.AsRPM);
-			if (value.HasValue)
+			if (value.HasValue) {
 				return value.Value.SI().Kilo.Gramm.Per.Second.Cast<KilogramPerSecond>();
+			}
 
-			if (allowExtrapolation)
+			if (allowExtrapolation) {
 				return
 					_fuelMap.Extrapolate(torque.Value(), angularVelocity.AsRPM).SI().Kilo.Gramm.Per.Second.Cast<KilogramPerSecond>();
+			}
 
 			throw new VectoException("FuelConsumptionMap: Interpolation failed. torque: {0}, n: {1}", torque.Value(),
 				angularVelocity.AsRPM);
 		}
 
-		private static class Fields
+		public static class Fields
 		{
 			/// <summary>
 			/// [rpm]
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs
index 32d9b6f27b..3a8434e773 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/Engine/PT1Curve.cs
@@ -74,7 +74,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data.Engine
 
 		protected override void ParseData(DataTable data)
 		{
-			if (data.Columns.Count < 4) {
+			if (data.Columns.Count < 3) {
 				throw new VectoException("FullLoadCurve/PT1 Data File must consist of at least 4 columns.");
 			}
 
diff --git a/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs b/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs
index fc8b6904e8..9aed81a97d 100644
--- a/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs
+++ b/VectoCore/VectoCore/Models/SimulationComponent/Data/RetarderLossMap.cs
@@ -153,7 +153,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Data
 			public NewtonMeter TorqueLoss { get; set; }
 		}
 
-		private static class Fields
+		public static class Fields
 		{
 			/// <summary>
 			///     [rpm]
diff --git a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
index 39830a4f40..a74972dec2 100644
--- a/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
+++ b/VectoCore/VectoCore/OutputData/SummaryDataContainer.cs
@@ -46,61 +46,61 @@ namespace TUGraz.VectoCore.OutputData
 	public class SummaryDataContainer : LoggingObject, IDisposable
 	{
 		// ReSharper disable InconsistentNaming
-		private const string JOB = "Job [-]";
-		private const string INPUTFILE = "Input File [-]";
-		private const string CYCLE = "Cycle [-]";
-		private const string STATUS = "Status";
-		private const string MASS = "Mass [kg]";
-		private const string LOADING = "Loading [kg]";
-		private const string TIME = "time [s]";
-		private const string DISTANCE = "distance [km]";
-		private const string SPEED = "speed [km/h]";
-		private const string ALTITUDE_DELTA = "altitudeDelta [m]";
-
-		private const string FCMAP_H = "FC-Map [g/h]";
-		private const string FCMAP_KM = "FC-Map [g/km]";
-		private const string FCAUXC_H = "FC-AUXc [g/h]";
-		private const string FCAUXC_KM = "FC-AUXc [g/km]";
-		private const string FCWHTCC_H = "FC-WHTCc [g/h]";
-		private const string FCWHTCC_KM = "FC-WHTCc [g/km]";
-		private const string FCAAUX_H = "FC-AAUX [g/h]";
-		private const string FCAAUX_KM = "FC-AAUX [g/km]";
-
-		private const string FCFINAL_H = "FC-Final [g/h]";
-		private const string FCFINAL_KM = "FC-Final [g/km]";
-		private const string FCFINAL_LITERPER100KM = "FC-Final [l/100km]";
-		private const string FCFINAL_LITERPER100TKM = "FC-Final [l/100tkm]";
-
-		private const string CO2_KM = "CO2 [g/km]";
-		private const string CO2_TKM = "CO2 [g/tkm]";
-
-		private const string P_WHEEL_POS = "P_wheel_in_pos [kW]";
-		private const string P_BRAKE_LOSS = "P_brake_loss [kW]";
-		private const string P_ENG_POS = "P_eng_out_pos [kW]";
-		private const string P_ENG_NEG = "P_eng_out_neg [kW]";
-
-		private const string E_AUX_FORMAT = "E_aux_{0} [kWh]";
-		private const string E_AUX = "E_aux_sum [kWh]";
-
-		private const string E_AIR = "E_air [kWh]";
-		private const string E_ROLL = "E_roll [kWh]";
-		private const string E_GRAD = "E_grad [kWh]";
-		private const string E_INERTIA = "E_inertia [kWh]";
-		private const string E_BRAKE = "E_brake [kWh]";
-		private const string E_GBX_AXL_LOSS = "E_gbx_axl_loss [kWh]";
-		private const string E_RET_LOSS = "E_ret_loss [kWh]";
-		private const string E_TC_LOSS = "E_tc_loss [kWh]";
-		private const string E_ENG_POS = "E_eng_out_pos [kWh]";
-		private const string E_ENG_NEG = "E_eng_out_neg [kWh]";
-
-		private const string ACC = "a [m/s^2]";
-		private const string ACC_POS = "a_pos [m/s^2]";
-		private const string ACC_NEG = "a_neg [m/s^2]";
-
-		private const string ACC_TIMESHARE = "AccelerationTimeShare [%]";
-		private const string DEC_TIMESHARE = "DecelerationTimeShare [%]";
-		private const string CRUISE_TIMESHARE = "CruiseTimeShare [%]";
-		private const string STOP_TIMESHARE = "StopTimeShare [%]";
+		public const string JOB = "Job [-]";
+		public const string INPUTFILE = "Input File [-]";
+		public const string CYCLE = "Cycle [-]";
+		public const string STATUS = "Status";
+		public const string MASS = "Mass [kg]";
+		public const string LOADING = "Loading [kg]";
+		public const string TIME = "time [s]";
+		public const string DISTANCE = "distance [km]";
+		public const string SPEED = "speed [km/h]";
+		public const string ALTITUDE_DELTA = "altitudeDelta [m]";
+
+		public const string FCMAP_H = "FC-Map [g/h]";
+		public const string FCMAP_KM = "FC-Map [g/km]";
+		public const string FCAUXC_H = "FC-AUXc [g/h]";
+		public const string FCAUXC_KM = "FC-AUXc [g/km]";
+		public const string FCWHTCC_H = "FC-WHTCc [g/h]";
+		public const string FCWHTCC_KM = "FC-WHTCc [g/km]";
+		public const string FCAAUX_H = "FC-AAUX [g/h]";
+		public const string FCAAUX_KM = "FC-AAUX [g/km]";
+
+		public const string FCFINAL_H = "FC-Final [g/h]";
+		public const string FCFINAL_KM = "FC-Final [g/km]";
+		public const string FCFINAL_LITERPER100KM = "FC-Final [l/100km]";
+		public const string FCFINAL_LITERPER100TKM = "FC-Final [l/100tkm]";
+
+		public const string CO2_KM = "CO2 [g/km]";
+		public const string CO2_TKM = "CO2 [g/tkm]";
+
+		public const string P_WHEEL_POS = "P_wheel_in_pos [kW]";
+		public const string P_BRAKE_LOSS = "P_brake_loss [kW]";
+		public const string P_ENG_POS = "P_eng_out_pos [kW]";
+		public const string P_ENG_NEG = "P_eng_out_neg [kW]";
+
+		public const string E_AUX_FORMAT = "E_aux_{0} [kWh]";
+		public const string E_AUX = "E_aux_sum [kWh]";
+
+		public const string E_AIR = "E_air [kWh]";
+		public const string E_ROLL = "E_roll [kWh]";
+		public const string E_GRAD = "E_grad [kWh]";
+		public const string E_INERTIA = "E_inertia [kWh]";
+		public const string E_BRAKE = "E_brake [kWh]";
+		public const string E_GBX_AXL_LOSS = "E_gbx_axl_loss [kWh]";
+		public const string E_RET_LOSS = "E_ret_loss [kWh]";
+		public const string E_TC_LOSS = "E_tc_loss [kWh]";
+		public const string E_ENG_POS = "E_eng_out_pos [kWh]";
+		public const string E_ENG_NEG = "E_eng_out_neg [kWh]";
+
+		public const string ACC = "a [m/s^2]";
+		public const string ACC_POS = "a_pos [m/s^2]";
+		public const string ACC_NEG = "a_neg [m/s^2]";
+
+		public const string ACC_TIMESHARE = "AccelerationTimeShare [%]";
+		public const string DEC_TIMESHARE = "DecelerationTimeShare [%]";
+		public const string CRUISE_TIMESHARE = "CruiseTimeShare [%]";
+		public const string STOP_TIMESHARE = "StopTimeShare [%]";
 		// ReSharper restore InconsistentNaming
 
 		private readonly DataTable _table;
diff --git a/VectoCore/VectoCore/Utils/DelaunayMap.cs b/VectoCore/VectoCore/Utils/DelaunayMap.cs
index 852d9571a2..54036b56b7 100644
--- a/VectoCore/VectoCore/Utils/DelaunayMap.cs
+++ b/VectoCore/VectoCore/Utils/DelaunayMap.cs
@@ -39,6 +39,7 @@ using System.Windows.Forms.DataVisualization.Charting;
 using TUGraz.VectoCommon.Exceptions;
 using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
+using Point = TUGraz.VectoCommon.Utils.Point;
 
 namespace TUGraz.VectoCore.Utils
 {
diff --git a/VectoCore/VectoCore/VectoCore.csproj b/VectoCore/VectoCore/VectoCore.csproj
index 3de550b75e..590d36f54c 100644
--- a/VectoCore/VectoCore/VectoCore.csproj
+++ b/VectoCore/VectoCore/VectoCore.csproj
@@ -187,7 +187,6 @@
     <Compile Include="Models\Simulation\DataBus\IClutchInfo.cs" />
     <Compile Include="Models\Simulation\DataBus\IDriverInfo.cs" />
     <Compile Include="Models\Simulation\DataBus\IWheelsInfo.cs" />
-    <Compile Include="Models\Simulation\Data\AuxiliaryDemandType.cs" />
     <Compile Include="Models\SimulationComponent\Data\AuxiliaryType.cs" />
     <Compile Include="Models\SimulationComponent\Data\FullLoadCurve.cs" />
     <Compile Include="Models\Simulation\DataBus\IMileageCounter.cs" />
diff --git a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs
index 99d82a1d7c..be989b1e32 100644
--- a/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs
+++ b/VectoCore/VectoCoreTest/Models/Declaration/ShiftPolygonTest.cs
@@ -48,7 +48,7 @@ using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
 using TUGraz.VectoCore.Tests.Utils;
 using TUGraz.VectoCore.Utils;
 using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;
-using Point = TUGraz.VectoCore.Utils.Point;
+using Point = TUGraz.VectoCommon.Utils.Point;
 
 namespace TUGraz.VectoCore.Tests.Models.Declaration
 {
diff --git a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
index f87c11281f..fbe300dc44 100644
--- a/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
+++ b/VectoCore/VectoCoreTest/Models/SimulationComponentData/ValidationTest.cs
@@ -38,6 +38,7 @@ using TUGraz.VectoCommon.Models;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.Reader;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.Simulation.Data;
 using TUGraz.VectoCore.Models.Simulation.Impl;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
diff --git a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
index c4bc81c2fa..5f188d92bd 100644
--- a/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
+++ b/VectoCore/VectoCoreTest/Utils/MockSimulationDataFactory.cs
@@ -34,6 +34,7 @@ using TUGraz.VectoCommon.InputData;
 using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.InputData.FileIO.JSON;
 using TUGraz.VectoCore.InputData.Reader.DataObjectAdaper;
+using TUGraz.VectoCore.InputData.Reader.DataObjectAdapter;
 using TUGraz.VectoCore.Models.SimulationComponent.Data;
 
 namespace TUGraz.VectoCore.Tests.Utils
diff --git a/VectoCore/VectoCoreTest/Utils/ShiftPolygonDrawer.cs b/VectoCore/VectoCoreTest/Utils/ShiftPolygonDrawer.cs
index 9518333dc4..994b829230 100644
--- a/VectoCore/VectoCoreTest/Utils/ShiftPolygonDrawer.cs
+++ b/VectoCore/VectoCoreTest/Utils/ShiftPolygonDrawer.cs
@@ -40,7 +40,7 @@ using TUGraz.VectoCommon.Utils;
 using TUGraz.VectoCore.Configuration;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Engine;
 using TUGraz.VectoCore.Models.SimulationComponent.Data.Gearbox;
-using Point = TUGraz.VectoCore.Utils.Point;
+using Point = TUGraz.VectoCommon.Utils.Point;
 
 namespace TUGraz.VectoCore.Tests.Utils
 {
-- 
GitLab