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