From 540b55f700d6fb89bd73538e96ca4be9839c4c1e Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Wed, 22 Jul 2015 15:59:19 +0200
Subject: [PATCH] dataWriter auxiliary test

---
 .../Simulation/Data/SummaryFileWriter.cs      | 15 ++++----
 .../SimulationComponent/Impl/Auxiliary.cs     |  2 +-
 VectoCoreTest/Models/Simulation/AuxTests.cs   | 34 ++++---------------
 VectoCoreTest/Utils/MockModalDataWriter.cs    |  2 +-
 4 files changed, 17 insertions(+), 36 deletions(-)

diff --git a/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs b/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs
index 12a95d506c..57af5b88cd 100644
--- a/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs
+++ b/VectoCore/Models/Simulation/Data/SummaryFileWriter.cs
@@ -59,7 +59,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 		protected SummaryFileWriter() {}
 
-		private string[] _auxColumns;
+		private IList<string> _auxColumns = new List<string>();
 
 		/// <summary>
 		/// Initializes a new instance of the <see cref="SummaryFileWriter"/> class.
@@ -96,18 +96,22 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 			WriteAuxiliaries(data, row);
 
-
 			_table.Rows.Add(row);
 		}
 
 		private void WriteAuxiliaries(IModalDataWriter data, DataRow row)
 		{
-			_auxColumns = data.Auxiliaries.Select(kv => "Eaux_" + kv.Key + " [kwh]").ToArray();
+			_auxColumns = _auxColumns.Union(data.Auxiliaries.Select(kv => "Eaux_" + kv.Key + " [kwh]")).ToList();
 
 			var sum = 0.0;
 			foreach (var aux in data.Auxiliaries) {
+				var colName = "Eaux_" + aux.Key + " [kwh]";
+				if (!_table.Columns.Contains(colName)) {
+					_table.Columns.Add(colName, typeof(double));
+				}
+
 				var currentSum = (double)data.Compute("Sum(" + aux.Value.ColumnName + ")", "");
-				row["Eaux_" + aux.Key + " [kwh]"] = currentSum;
+				row[colName] = currentSum;
 				sum += currentSum;
 			}
 			row[EAUX] = sum;
@@ -115,8 +119,7 @@ namespace TUGraz.VectoCore.Models.Simulation.Data
 
 
 		public void WriteFullPowertrain(IModalDataWriter data, string jobFileName, string jobName, string cycleFileName,
-			Kilogram vehicleMass,
-			Kilogram vehicleLoading)
+			Kilogram vehicleMass, Kilogram vehicleLoading)
 		{
 			_engineOnly = false;
 
diff --git a/VectoCore/Models/SimulationComponent/Impl/Auxiliary.cs b/VectoCore/Models/SimulationComponent/Impl/Auxiliary.cs
index 9823606631..e655f16131 100644
--- a/VectoCore/Models/SimulationComponent/Impl/Auxiliary.cs
+++ b/VectoCore/Models/SimulationComponent/Impl/Auxiliary.cs
@@ -75,7 +75,7 @@ namespace TUGraz.VectoCore.Models.SimulationComponent.Impl
 				sum += kv.Value;
 				// todo: aux write directauxiliary somewhere to moddata .... probably Padd column??
 				if (!string.IsNullOrWhiteSpace(kv.Key)) {
-					writer[kv.Key] = kv.Value;
+					writer[kv.Key] = kv.Value.Value();
 				}
 			}
 			writer[ModalResultField.Paux] = sum.Value();
diff --git a/VectoCoreTest/Models/Simulation/AuxTests.cs b/VectoCoreTest/Models/Simulation/AuxTests.cs
index 4536521ecb..5d3d15b58d 100644
--- a/VectoCoreTest/Models/Simulation/AuxTests.cs
+++ b/VectoCoreTest/Models/Simulation/AuxTests.cs
@@ -12,36 +12,17 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 	[TestClass]
 	public class AuxTests
 	{
-		[TestMethod]
-		public void Aux_WriteModFileSumFile1()
-		{
-			var sumWriter = new SummaryFileWriter(@"24t Coach.vsum");
-			var jobContainer = new JobContainer(sumWriter);
-
-			var runsFactory = new SimulatorFactory(SimulatorFactory.FactoryMode.EngineOnlyMode);
-			runsFactory.DataReader.SetJobFile(@"TestData\Jobs\24t Coach.vecto");
-
-			jobContainer.AddRuns(runsFactory);
-			jobContainer.Execute();
-
-			ResultFileHelper.TestSumFile(@"TestData\Results\EngineOnlyCycles\24t Coach.vsum", @"TestData\Jobs\24t Coach.vsum");
-			ResultFileHelper.TestModFiles(new[] {
-				@"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only1.vmod",
-				@"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only2.vmod",
-				@"TestData\Results\EngineOnlyCycles\24t Coach_Engine Only3.vmod"
-			}, new[] { "24t Coach_Engine Only1.vmod", "24t Coach_Engine Only2.vmod", "24t Coach_Engine Only3.vmod" });
-			Assert.Inconclusive();
-		}
-
 		[TestMethod]
 		public void AuxWriteModFileSumFile()
 		{
-			var dataWriter = new MockModalDataWriter();
+			var dataWriter = new ModalDataWriter(@"24t Coach AUX.vmod", true);
 			dataWriter.AddAuxiliary("ALT1");
 			dataWriter.AddAuxiliary("CONSTANT");
 
-			var sumWriter = new TestSumWriter();
-			var container = new VehicleContainer(dataWriter, sumWriter);
+			var sumWriter = new SummaryFileWriter(@"24t Coach AUX.vsum");
+			var deco = new SumWriterDecoratorEngineOnly(sumWriter, "", "", "");
+
+			var container = new VehicleContainer(dataWriter, deco);
 			var data = DrivingCycleData.ReadFromFile(@"TestData\Cycles\Coach time based short.vdri",
 				DrivingCycleData.CycleType.TimeBased);
 
@@ -64,14 +45,11 @@ namespace TUGraz.VectoCore.Tests.Models.Simulation
 
 			for (var i = 0; i < data.Entries.Count; i++) {
 				aux.OutPort().Request(t, t, torque, speed);
-				cycle.CommitSimulationStep(dataWriter);
+				container.CommitSimulationStep(0, 0);
 			}
 
 			container.FinishSimulation();
-
 			sumWriter.Finish();
-
-			Assert.Inconclusive();
 		}
 
 
diff --git a/VectoCoreTest/Utils/MockModalDataWriter.cs b/VectoCoreTest/Utils/MockModalDataWriter.cs
index dd26b57561..a12af61b69 100644
--- a/VectoCoreTest/Utils/MockModalDataWriter.cs
+++ b/VectoCoreTest/Utils/MockModalDataWriter.cs
@@ -7,7 +7,7 @@ using TUGraz.VectoCore.Models.Simulation.Data;
 namespace TUGraz.VectoCore.Tests.Utils
 {
 	/// <summary>
-	///     Fake Data Writer Class for Tests.
+	/// Fake Data Writer Class for Tests.
 	/// </summary>
 	internal class MockModalDataWriter : IModalDataWriter
 	{
-- 
GitLab