From 17cd23d0a1f0a969a32f4fb8d6fdc6a4e9c2bb32 Mon Sep 17 00:00:00 2001 From: Michael Krisper <michael.krisper@tugraz.at> Date: Wed, 11 Aug 2021 17:35:51 +0200 Subject: [PATCH] renamed ConvertToMegaJoulePerKilometer --- .../Utils/EnumerableExtensionMethods.cs | 40 +++++++++++++++++++ .../Utils/SIConvertExtensionMethods.cs | 4 +- .../OutputData/FileIO/BusAuxWriter.cs | 2 +- .../XMLManufacturerReportCompletedBus.cs | 8 ++-- 4 files changed, 47 insertions(+), 7 deletions(-) diff --git a/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs index 71ce8990d5..f1d54bab94 100644 --- a/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/EnumerableExtensionMethods.cs @@ -61,6 +61,7 @@ namespace TUGraz.VectoCommon.Utils return self.OrderBy(x => x).SequenceEqual(other.OrderBy(x => x)); } } + return true; } @@ -148,11 +149,13 @@ namespace TUGraz.VectoCommon.Utils if (!predicate(self[i])) break; } + if (i == 0) { i = 1; } else if (i == self.Length) { i--; } + return Tuple.Create(self[i - 1], self[i]); } @@ -173,6 +176,7 @@ namespace TUGraz.VectoCommon.Utils if (!e.MoveNext()) { throw new InvalidOperationException("Sequence is empty."); } + var min = e.Current; var minProjection = projectionToComparable(e.Current); @@ -183,6 +187,7 @@ namespace TUGraz.VectoCommon.Utils minProjection = currentProjection; } } + return min; } } @@ -194,6 +199,7 @@ namespace TUGraz.VectoCommon.Utils if (!e.MoveNext()) { throw new InvalidOperationException("Sequence is empty."); } + var max = e.Current; var maxProjection = projectionToComparable(e.Current); @@ -204,6 +210,7 @@ namespace TUGraz.VectoCommon.Utils maxProjection = currentProjection; } } + return max; } } @@ -240,5 +247,38 @@ namespace TUGraz.VectoCommon.Utils { return Enumerable.Repeat(element, count); } + + /// <summary> + /// Deconstruct an IEnumerable into individual variables. (Tuple Unpacking) + /// </summary> + /// <typeparam name="T"></typeparam> + /// <param name="values"></param> + /// <param name="item1"></param> + /// <param name="item2"></param> + /// <param name="item3"></param> + /// <param name="item4"></param> + /// <param name="item5"></param> + /// <param name="item6"></param> + /// <param name="item7"></param> + public static void Deconstruct<T>(this IEnumerable<T> values, out T item1, out T item2, + out T item3, out T item4, out T item5, out T item6, out T item7) + { + using (var enumerator = values.GetEnumerator()) { + enumerator.MoveNext(); + item1 = enumerator.Current; + enumerator.MoveNext(); + item2 = enumerator.Current; + enumerator.MoveNext(); + item3 = enumerator.Current; + enumerator.MoveNext(); + item4 = enumerator.Current; + enumerator.MoveNext(); + item5 = enumerator.Current; + enumerator.MoveNext(); + item6 = enumerator.Current; + enumerator.MoveNext(); + item7 = enumerator.Current; + } + } } } \ No newline at end of file diff --git a/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs b/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs index 32bc88d9b6..1f950c20eb 100644 --- a/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs +++ b/VectoCommon/VectoCommon/Utils/SIConvertExtensionMethods.cs @@ -237,7 +237,7 @@ namespace TUGraz.VectoCommon.Utils return new ConvertedSI(value.Value() / Kilo / Kilo, "MJ/kg"); } - public static ConvertedSI ConvertToKiloWattHourPerKilogramm(this JoulePerKilogramm value) + public static ConvertedSI ConvertToKiloWattHourPerKilogram(this JoulePerKilogramm value) { return new ConvertedSI(value.Value() / SecondsPerHour / Kilo, "kWh/kg"); } @@ -252,7 +252,7 @@ namespace TUGraz.VectoCommon.Utils return new ConvertedSI(nlps.Value() * 60.0, "Nl/min"); } - public static ConvertedSI ConvertToMegaJouleperKilometer(this JoulePerMeter jpm) + public static ConvertedSI ConvertToMegaJoulePerKilometer(this JoulePerMeter jpm) { return new ConvertedSI(jpm.Value() * 1e-3, "MJ/km"); } diff --git a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs index 080b18fbda..0e3fbe7f3d 100644 --- a/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs +++ b/VectoCore/VectoCore/OutputData/FileIO/BusAuxWriter.cs @@ -192,7 +192,7 @@ namespace TUGraz.VectoCore.OutputData.FileIO //retVal["BC_lowVentilation"] = ssmInputs.BoundaryConditions.LowVentilation.ConvertToPerHour().Value; retVal["BC_SpecificVentilationPower"] = ssmInputs.BoundaryConditions.SpecificVentilationPower.ConvertToWattHourPerCubicMeter().Value; retVal["BC_AuxHeaterEfficiency"] = ssmInputs.BoundaryConditions.AuxHeaterEfficiency; - retVal["BC_GCVDieselOrHeatingOil"] = ssmInputs.BoundaryConditions.GCVDieselOrHeatingOil.ConvertToKiloWattHourPerKilogramm().Value; + retVal["BC_GCVDieselOrHeatingOil"] = ssmInputs.BoundaryConditions.GCVDieselOrHeatingOil.ConvertToKiloWattHourPerKilogram().Value; retVal["BC_MaxTemperatureDeltaForLowFloorBusses"] = ssmInputs.BoundaryConditions.MaxTemperatureDeltaForLowFloorBusses.AsDegCelsius; retVal["BC_MaxPossibleBenefitFromTechnologyList"] = ssmInputs.BoundaryConditions.MaxPossibleBenefitFromTechnologyList; retVal["BC_UValue"] = ssmInputs.BoundaryConditions.UValue.Value(); diff --git a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs index bec09199c0..3d23982088 100644 --- a/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs +++ b/VectoCore/VectoCore/OutputData/XML/DeclarationReports/ManufacturerReport/XMLManufacturerReportCompletedBus.cs @@ -259,23 +259,23 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.ManufacturerReport new XElement( tns + XMLNames.Report_Results_FuelConsumption, new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/km"), - fcEnergy.ConvertToMegaJouleperKilometer().ToMinSignificantDigits(3, 1)), + fcEnergy.ConvertToMegaJoulePerKilometer().ToMinSignificantDigits(3, 1)), new XElement( tns + XMLNames.Report_Results_FuelConsumption, new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/t-km"), - (fcEnergy.ConvertToMegaJouleperKilometer() / specificResult.Payload.ConvertToTon()) + (fcEnergy.ConvertToMegaJoulePerKilometer() / specificResult.Payload.ConvertToTon()) .ToMinSignificantDigits(3, 1)), specificResult.CargoVolume > 0 ? new XElement( tns + XMLNames.Report_Results_FuelConsumption, new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/m³-km"), - (fcEnergy.ConvertToMegaJouleperKilometer() / specificResult.CargoVolume.Value()).ToMinSignificantDigits(3, 1)) + (fcEnergy.ConvertToMegaJoulePerKilometer() / specificResult.CargoVolume.Value()).ToMinSignificantDigits(3, 1)) : null, specificResult.PassengerCount.HasValue && specificResult.PassengerCount.Value > 0 ? new XElement( tns + XMLNames.Report_Results_FuelConsumption, new XAttribute(XMLNames.Report_Results_Unit_Attr, "MJ/p-km"), - (fcEnergy.ConvertToMegaJouleperKilometer() / specificResult.PassengerCount.Value).ToMinSignificantDigits(3, 1)) + (fcEnergy.ConvertToMegaJoulePerKilometer() / specificResult.PassengerCount.Value).ToMinSignificantDigits(3, 1)) : null ); if (fuelData.FuelDensity != null) { -- GitLab