Code development platform for open source projects from the European Union institutions

Skip to content
Snippets Groups Projects
Commit 3cd90fa1 authored by Markus Quaritsch's avatar Markus Quaritsch
Browse files

Merge branch 'amdm2/develop' into 'amdm2/develop'

change number of significant decimals in XML reports

See merge request vecto/vecto!35
parents 78affabc 347b96af
No related branches found
No related tags found
No related merge requests found
using System;
using System.Collections.Generic;
using System.Collections.Generic;
using System.Linq;
using System.Xml.Linq;
using TUGraz.VectoCommon.Models;
......@@ -33,48 +32,12 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
protected abstract IList<FormattedReportValue> GetCO2ResultEntries(Kilogram co2, Meter distance, Kilogram payload,
CubicMeter volume, double? passengers);
protected object[] Format3Significant1Decimal(ConvertedSI value)
{
return value.ValueAsUnit(3, 1);
}
protected object[] Format1Decimal(ConvertedSI value)
{
return value.ValueAsUnit(1);
}
protected object[] Format2Decimal(ConvertedSI value)
{
return value.ValueAsUnit(2);
}
}
public class FormattedReportValue
{
public ConvertedSI Value { get; }
protected Func<ConvertedSI, object[]> Formatter;
public FormattedReportValue(ConvertedSI value, Func<ConvertedSI, object[]> formatter = null)
{
Value = value;
Formatter = formatter ?? DefaultFormat;
}
public object[] GetElement()
{
return Formatter(Value);
}
protected object[] DefaultFormat(ConvertedSI value)
{
return Value.ValueAsUnit(3, 1);
}
}
public class LorryCO2Writer : CO2WriterBase
public class LorryCO2Writer : CO2WriterBase
{
public LorryCO2Writer(ICommonResultsWriterFactory factory, XNamespace ns) : base(factory, ns) { }
......@@ -84,7 +47,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
var retVal = new List<FormattedReportValue>() {
new FormattedReportValue((CO2Total / distance).ConvertToGrammPerKiloMeter()),
new FormattedReportValue((CO2Total / distance / payload).ConvertToGrammPerTonKilometer(), Format1Decimal),
new FormattedReportValue((CO2Total / distance / payload).ConvertToGrammPerTonKilometer(), FormattedReportValue.Format1Decimal),
};
if (volume.IsGreater(0)) {
retVal.Add(new FormattedReportValue((CO2Total / distance / volume).ConvertToGrammPerCubicMeterKiloMeter()));
......@@ -103,7 +66,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new[] {
new FormattedReportValue((CO2Total / distance).ConvertToGrammPerKiloMeter()),
new FormattedReportValue((CO2Total / distance / passengers.Value).ConvertToGrammPerPassengerKilometer(), Format2Decimal),
new FormattedReportValue((CO2Total / distance / passengers.Value).ConvertToGrammPerPassengerKilometer(), FormattedReportValue.Format2Decimal),
};
}
......@@ -127,7 +90,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, entry.AuxHeaterFuel.FuelType.ToXMLFormat()),
tmp?.GetFuelConsumptionEntries(entry.ZEV_FuelConsumption_AuxHtr, entry.AuxHeaterFuel, entry.Distance,
entry.Payload, entry.CargoVolume, entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, new FormattedReportValue(x).GetElement()))
),
new XElement(TNS + XMLNames.Report_ResultEntry_CO2ZEVAuxHeater,
GetCO2ResultEntries(entry.ZEV_CO2, entry.Distance, entry.Payload, entry.CargoVolume,
......@@ -149,7 +112,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, entry.AuxHeaterFuel.FuelType.ToXMLFormat()),
tmp?.GetFuelConsumptionEntries(entry.ZEV_FuelConsumption_AuxHtr, entry.AuxHeaterFuel, entry.Distance,
entry.Payload, entry.CargoVolume, entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, new FormattedReportValue(x).GetElement()))
),
new XElement(TNS + XMLNames.Report_ResultEntry_CO2ZEVAuxHeater,
GetCO2ResultEntries(entry.ZEV_CO2, entry.Distance, entry.Payload, entry.CargoVolume,
......
......@@ -19,7 +19,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
return new XElement(TNS + ElectricEnergyConsumptionXMLElementName,
GetEnergyConsumption(entry.ElectricEnergyConsumption, entry.Distance, entry.Payload, entry.CargoVolume,
entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......@@ -28,7 +28,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
return new XElement(TNS + ElectricEnergyConsumptionXMLElementName,
GetEnergyConsumption(weighted.ElectricEnergyConsumption, weighted.Distance, weighted.Payload, weighted.CargoVolume,
weighted.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......
using System;
using TUGraz.VectoCommon.Utils;
using TUGraz.VectoCore.Utils;
namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
public class FormattedReportValue
{
public ConvertedSI Value { get; }
protected Func<ConvertedSI, object[]> Formatter;
public FormattedReportValue(ConvertedSI value, Func<ConvertedSI, object[]> formatter = null)
{
Value = value;
Formatter = formatter ?? DefaultFormat;
}
public object[] GetElement()
{
return Formatter(Value);
}
protected object[] DefaultFormat(ConvertedSI value)
{
return Value.ValueAsUnit(4, 1);
}
public static object[] Format1Decimal(ConvertedSI value)
{
return value.ValueAsUnit(1);
}
public static object[] Format2Decimal(ConvertedSI value)
{
return value.ValueAsUnit(2);
}
}
}
\ No newline at end of file
......@@ -32,9 +32,10 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new XElement(TNS + XMLNames.Report_Results_Fuel,
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fuel.FuelType.ToXMLFormat()),
GetFuelConsumptionEntries(consumption, fuel, distance, payLoad, cargoVolume, passengerCount).Select(x => new XElement(TNS + XMLNames.Report_Results_FuelConsumption, x.ValueAsUnit(3, 1)))
GetFuelConsumptionEntries(consumption, fuel, distance, payLoad, cargoVolume, passengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Results_FuelConsumption, new FormattedReportValue(x).GetElement()))
);
}
}
#endregion
......
......@@ -95,11 +95,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new[] {
new XElement(TNS + XMLNames.Report_ResultEntry_ActualChargeDepletingRange,
XMLHelper.ValueAsUnit(result.ActualChargeDepletingRange.ConvertToKiloMeter())),
result.ActualChargeDepletingRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_EquivalentAllElectricRange,
XMLHelper.ValueAsUnit(result.EquivalentAllElectricRange.ConvertToKiloMeter())),
result.EquivalentAllElectricRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_ZeroCO2EmissionsRange,
XMLHelper.ValueAsUnit(result.ZeroCO2EmissionsRange.ConvertToKiloMeter())),
result.ZeroCO2EmissionsRange.ConvertToKiloMeter().ValueAsUnit()),
};
}
......@@ -107,11 +107,11 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.Common
{
return new[] {
new XElement(TNS + XMLNames.Report_ResultEntry_ActualChargeDepletingRange,
XMLHelper.ValueAsUnit(weightedResult.ActualChargeDepletingRange.ConvertToKiloMeter())),
weightedResult.ActualChargeDepletingRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_EquivalentAllElectricRange,
XMLHelper.ValueAsUnit(weightedResult.EquivalentAllElectricRange.ConvertToKiloMeter())),
weightedResult.EquivalentAllElectricRange.ConvertToKiloMeter().ValueAsUnit()),
new XElement(TNS + XMLNames.Report_ResultEntry_ZeroCO2EmissionsRange,
XMLHelper.ValueAsUnit(weightedResult.ZeroCO2EmissionsRange.ConvertToKiloMeter())),
weightedResult.ZeroCO2EmissionsRange.ConvertToKiloMeter().ValueAsUnit()),
};
}
......
......@@ -121,7 +121,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fc.Fuel.FuelType.ToXMLFormat()),
GetFuelConsumptionEntries(fc.TotalFuelConsumptionCorrected, fc.Fuel, entry.Distance, entry.Payload,
entry.CargoVolume, entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......@@ -131,7 +131,7 @@ namespace TUGraz.VectoCore.OutputData.XML.DeclarationReports.VehicleInformationF
new XAttribute(XMLNames.Report_Results_Fuel_Type_Attr, fuel.FuelType.ToXMLFormat()),
GetFuelConsumptionEntries(consumption, fuel, entry.Distance, entry.Payload, entry.CargoVolume,
entry.PassengerCount).Select(x =>
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, x.ValueAsUnit(3, 1)))
new XElement(TNS + XMLNames.Report_Result_EnergyConsumption, new FormattedReportValue(x).GetElement()))
);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment