From ee040c07fe6157a6618e495e6467ada470c4a268 Mon Sep 17 00:00:00 2001 From: tongbong Date: Wed, 30 Jan 2019 14:53:29 +0100 Subject: [PATCH] Add unit GramsPerHour --- Common/UnitDefinitions/MassFlow.json | 14 +++++++++++++- UnitsNet.Tests/CustomCode/MassFlowTests.cs | 14 +++++++++----- .../GeneratedCode/MassFlowTestsBase.g.cs | 10 ++++++++++ .../MassFlow.WindowsRuntimeComponent.g.cs | 17 +++++++++++++++++ .../Quantities/MassFlow.NetFramework.g.cs | 16 ++++++++++++++++ .../GeneratedCode/UnitAbbreviationsCache.g.cs | 1 + UnitsNet/GeneratedCode/Units/MassFlowUnit.g.cs | 1 + 7 files changed, 67 insertions(+), 6 deletions(-) diff --git a/Common/UnitDefinitions/MassFlow.json b/Common/UnitDefinitions/MassFlow.json index ed80efc7c6..309454789d 100644 --- a/Common/UnitDefinitions/MassFlow.json +++ b/Common/UnitDefinitions/MassFlow.json @@ -33,6 +33,18 @@ } ] }, + { + "SingularName": "GramPerHour", + "PluralName": "GramsPerHour", + "FromUnitToBaseFunc": "x/3600", + "FromBaseToUnitFunc": "x*3600", + "Localization": [ + { + "Culture": "en-US", + "Abbreviations": [ "g/h" ] + } + ] + }, { "SingularName": "KilogramPerHour", "PluralName": "KilogramsPerHour", @@ -104,7 +116,7 @@ } ] }, - { + { "SingularName": "PoundPerMinute", "PluralName": "PoundsPerMinute", "FromUnitToBaseFunc": "x/0.132277", diff --git a/UnitsNet.Tests/CustomCode/MassFlowTests.cs b/UnitsNet.Tests/CustomCode/MassFlowTests.cs index f523deee8d..34b590c473 100644 --- a/UnitsNet.Tests/CustomCode/MassFlowTests.cs +++ b/UnitsNet.Tests/CustomCode/MassFlowTests.cs @@ -26,6 +26,7 @@ namespace UnitsNet.Tests.CustomCode { public class MassFlowTests : MassFlowTestsBase { + /// protected override double GramsPerSecondInOneGramPerSecond => 1; protected override double DecagramsPerSecondInOneGramPerSecond => 1E-1; @@ -52,7 +53,7 @@ public class MassFlowTests : MassFlowTestsBase protected override double ShortTonsPerHourInOneGramPerSecond => 3.96832e-3; - protected override double TonnesPerDayInOneGramPerSecond => 60.0*60*24/1E6; + protected override double TonnesPerDayInOneGramPerSecond => 60.0 * 60 * 24 / 1E6; protected override double PoundsPerHourInOneGramPerSecond => 7.93664; @@ -86,31 +87,34 @@ public class MassFlowTests : MassFlowTestsBase protected override double PoundsPerDayInOneGramPerSecond => 1.9047936e2; + protected override double GramsPerHourInOneGramPerSecond => 3600; + + [Fact] public void DurationTimesMassFlowEqualsMass() { - Mass mass = Duration.FromSeconds(4.0)*MassFlow.FromKilogramsPerSecond(20.0); + Mass mass = Duration.FromSeconds(4.0) * MassFlow.FromKilogramsPerSecond(20.0); Assert.Equal(mass, Mass.FromKilograms(80.0)); } [Fact] public void MassFlowTimesDurationEqualsMass() { - Mass mass = MassFlow.FromKilogramsPerSecond(20.0)*Duration.FromSeconds(4.0); + Mass mass = MassFlow.FromKilogramsPerSecond(20.0) * Duration.FromSeconds(4.0); Assert.Equal(mass, Mass.FromKilograms(80.0)); } [Fact] public void MassFlowTimesTimeSpanEqualsMass() { - Mass mass = MassFlow.FromKilogramsPerSecond(20.0)*TimeSpan.FromSeconds(4.0); + Mass mass = MassFlow.FromKilogramsPerSecond(20.0) * TimeSpan.FromSeconds(4.0); Assert.Equal(mass, Mass.FromKilograms(80.0)); } [Fact] public void TimeSpanTimesMassFlowEqualsMass() { - Mass mass = TimeSpan.FromSeconds(4.0)*MassFlow.FromKilogramsPerSecond(20.0); + Mass mass = TimeSpan.FromSeconds(4.0) * MassFlow.FromKilogramsPerSecond(20.0); Assert.Equal(mass, Mass.FromKilograms(80.0)); } diff --git a/UnitsNet.Tests/GeneratedCode/MassFlowTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/MassFlowTestsBase.g.cs index c00c6e939d..2c394f41eb 100644 --- a/UnitsNet.Tests/GeneratedCode/MassFlowTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/MassFlowTestsBase.g.cs @@ -59,6 +59,7 @@ public abstract partial class MassFlowTestsBase protected abstract double DecigramsPerDayInOneGramPerSecond { get; } protected abstract double DecigramsPerSecondInOneGramPerSecond { get; } protected abstract double GramsPerDayInOneGramPerSecond { get; } + protected abstract double GramsPerHourInOneGramPerSecond { get; } protected abstract double GramsPerSecondInOneGramPerSecond { get; } protected abstract double HectogramsPerDayInOneGramPerSecond { get; } protected abstract double HectogramsPerSecondInOneGramPerSecond { get; } @@ -91,6 +92,7 @@ public abstract partial class MassFlowTestsBase protected virtual double DecigramsPerDayTolerance { get { return 1e-5; } } protected virtual double DecigramsPerSecondTolerance { get { return 1e-5; } } protected virtual double GramsPerDayTolerance { get { return 1e-5; } } + protected virtual double GramsPerHourTolerance { get { return 1e-5; } } protected virtual double GramsPerSecondTolerance { get { return 1e-5; } } protected virtual double HectogramsPerDayTolerance { get { return 1e-5; } } protected virtual double HectogramsPerSecondTolerance { get { return 1e-5; } } @@ -146,6 +148,7 @@ public void GramPerSecondToMassFlowUnits() AssertEx.EqualTolerance(DecigramsPerDayInOneGramPerSecond, grampersecond.DecigramsPerDay, DecigramsPerDayTolerance); AssertEx.EqualTolerance(DecigramsPerSecondInOneGramPerSecond, grampersecond.DecigramsPerSecond, DecigramsPerSecondTolerance); AssertEx.EqualTolerance(GramsPerDayInOneGramPerSecond, grampersecond.GramsPerDay, GramsPerDayTolerance); + AssertEx.EqualTolerance(GramsPerHourInOneGramPerSecond, grampersecond.GramsPerHour, GramsPerHourTolerance); AssertEx.EqualTolerance(GramsPerSecondInOneGramPerSecond, grampersecond.GramsPerSecond, GramsPerSecondTolerance); AssertEx.EqualTolerance(HectogramsPerDayInOneGramPerSecond, grampersecond.HectogramsPerDay, HectogramsPerDayTolerance); AssertEx.EqualTolerance(HectogramsPerSecondInOneGramPerSecond, grampersecond.HectogramsPerSecond, HectogramsPerSecondTolerance); @@ -181,6 +184,7 @@ public void FromValueAndUnit() AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.DecigramPerDay).DecigramsPerDay, DecigramsPerDayTolerance); AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.DecigramPerSecond).DecigramsPerSecond, DecigramsPerSecondTolerance); AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.GramPerDay).GramsPerDay, GramsPerDayTolerance); + AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.GramPerHour).GramsPerHour, GramsPerHourTolerance); AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.GramPerSecond).GramsPerSecond, GramsPerSecondTolerance); AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.HectogramPerDay).HectogramsPerDay, HectogramsPerDayTolerance); AssertEx.EqualTolerance(1, MassFlow.From(1, MassFlowUnit.HectogramPerSecond).HectogramsPerSecond, HectogramsPerSecondTolerance); @@ -230,6 +234,7 @@ public void As() AssertEx.EqualTolerance(DecigramsPerDayInOneGramPerSecond, grampersecond.As(MassFlowUnit.DecigramPerDay), DecigramsPerDayTolerance); AssertEx.EqualTolerance(DecigramsPerSecondInOneGramPerSecond, grampersecond.As(MassFlowUnit.DecigramPerSecond), DecigramsPerSecondTolerance); AssertEx.EqualTolerance(GramsPerDayInOneGramPerSecond, grampersecond.As(MassFlowUnit.GramPerDay), GramsPerDayTolerance); + AssertEx.EqualTolerance(GramsPerHourInOneGramPerSecond, grampersecond.As(MassFlowUnit.GramPerHour), GramsPerHourTolerance); AssertEx.EqualTolerance(GramsPerSecondInOneGramPerSecond, grampersecond.As(MassFlowUnit.GramPerSecond), GramsPerSecondTolerance); AssertEx.EqualTolerance(HectogramsPerDayInOneGramPerSecond, grampersecond.As(MassFlowUnit.HectogramPerDay), HectogramsPerDayTolerance); AssertEx.EqualTolerance(HectogramsPerSecondInOneGramPerSecond, grampersecond.As(MassFlowUnit.HectogramPerSecond), HectogramsPerSecondTolerance); @@ -288,6 +293,10 @@ public void ToUnit() AssertEx.EqualTolerance(GramsPerDayInOneGramPerSecond, (double)gramperdayQuantity.Value, GramsPerDayTolerance); Assert.Equal(MassFlowUnit.GramPerDay, gramperdayQuantity.Unit); + var gramperhourQuantity = grampersecond.ToUnit(MassFlowUnit.GramPerHour); + AssertEx.EqualTolerance(GramsPerHourInOneGramPerSecond, (double)gramperhourQuantity.Value, GramsPerHourTolerance); + Assert.Equal(MassFlowUnit.GramPerHour, gramperhourQuantity.Unit); + var grampersecondQuantity = grampersecond.ToUnit(MassFlowUnit.GramPerSecond); AssertEx.EqualTolerance(GramsPerSecondInOneGramPerSecond, (double)grampersecondQuantity.Value, GramsPerSecondTolerance); Assert.Equal(MassFlowUnit.GramPerSecond, grampersecondQuantity.Unit); @@ -392,6 +401,7 @@ public void ConversionRoundTrip() AssertEx.EqualTolerance(1, MassFlow.FromDecigramsPerDay(grampersecond.DecigramsPerDay).GramsPerSecond, DecigramsPerDayTolerance); AssertEx.EqualTolerance(1, MassFlow.FromDecigramsPerSecond(grampersecond.DecigramsPerSecond).GramsPerSecond, DecigramsPerSecondTolerance); AssertEx.EqualTolerance(1, MassFlow.FromGramsPerDay(grampersecond.GramsPerDay).GramsPerSecond, GramsPerDayTolerance); + AssertEx.EqualTolerance(1, MassFlow.FromGramsPerHour(grampersecond.GramsPerHour).GramsPerSecond, GramsPerHourTolerance); AssertEx.EqualTolerance(1, MassFlow.FromGramsPerSecond(grampersecond.GramsPerSecond).GramsPerSecond, GramsPerSecondTolerance); AssertEx.EqualTolerance(1, MassFlow.FromHectogramsPerDay(grampersecond.HectogramsPerDay).GramsPerSecond, HectogramsPerDayTolerance); AssertEx.EqualTolerance(1, MassFlow.FromHectogramsPerSecond(grampersecond.HectogramsPerSecond).GramsPerSecond, HectogramsPerSecondTolerance); diff --git a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/MassFlow.WindowsRuntimeComponent.g.cs b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/MassFlow.WindowsRuntimeComponent.g.cs index 14c4cb7557..69e0f0b145 100644 --- a/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/MassFlow.WindowsRuntimeComponent.g.cs +++ b/UnitsNet.WindowsRuntimeComponent/GeneratedCode/Quantities/MassFlow.WindowsRuntimeComponent.g.cs @@ -196,6 +196,11 @@ private MassFlow(double numericValue, MassFlowUnit unit) /// public double GramsPerDay => As(MassFlowUnit.GramPerDay); + /// + /// Get MassFlow in GramsPerHour. + /// + public double GramsPerHour => As(MassFlowUnit.GramPerHour); + /// /// Get MassFlow in GramsPerSecond. /// @@ -412,6 +417,16 @@ public static MassFlow FromGramsPerDay(double gramsperday) return new MassFlow(value, MassFlowUnit.GramPerDay); } /// + /// Get MassFlow from GramsPerHour. + /// + /// If value is NaN or Infinity. + [Windows.Foundation.Metadata.DefaultOverload] + public static MassFlow FromGramsPerHour(double gramsperhour) + { + double value = (double) gramsperhour; + return new MassFlow(value, MassFlowUnit.GramPerHour); + } + /// /// Get MassFlow from GramsPerSecond. /// /// If value is NaN or Infinity. @@ -937,6 +952,7 @@ private double AsBaseUnit() case MassFlowUnit.DecigramPerDay: return (_value/86400) * 1e-1d; case MassFlowUnit.DecigramPerSecond: return (_value) * 1e-1d; case MassFlowUnit.GramPerDay: return _value/86400; + case MassFlowUnit.GramPerHour: return _value/3600; case MassFlowUnit.GramPerSecond: return _value; case MassFlowUnit.HectogramPerDay: return (_value/86400) * 1e2d; case MassFlowUnit.HectogramPerSecond: return (_value) * 1e2d; @@ -981,6 +997,7 @@ private double AsBaseNumericType(MassFlowUnit unit) case MassFlowUnit.DecigramPerDay: return (baseUnitValue*86400) / 1e-1d; case MassFlowUnit.DecigramPerSecond: return (baseUnitValue) / 1e-1d; case MassFlowUnit.GramPerDay: return baseUnitValue*86400; + case MassFlowUnit.GramPerHour: return baseUnitValue*3600; case MassFlowUnit.GramPerSecond: return baseUnitValue; case MassFlowUnit.HectogramPerDay: return (baseUnitValue*86400) / 1e2d; case MassFlowUnit.HectogramPerSecond: return (baseUnitValue) / 1e2d; diff --git a/UnitsNet/GeneratedCode/Quantities/MassFlow.NetFramework.g.cs b/UnitsNet/GeneratedCode/Quantities/MassFlow.NetFramework.g.cs index c97e0e3e27..506ff0ba9d 100644 --- a/UnitsNet/GeneratedCode/Quantities/MassFlow.NetFramework.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/MassFlow.NetFramework.g.cs @@ -182,6 +182,11 @@ public MassFlow(double numericValue, MassFlowUnit unit) /// public double GramsPerDay => As(MassFlowUnit.GramPerDay); + /// + /// Get MassFlow in GramsPerHour. + /// + public double GramsPerHour => As(MassFlowUnit.GramPerHour); + /// /// Get MassFlow in GramsPerSecond. /// @@ -390,6 +395,15 @@ public static MassFlow FromGramsPerDay(QuantityValue gramsperday) return new MassFlow(value, MassFlowUnit.GramPerDay); } /// + /// Get MassFlow from GramsPerHour. + /// + /// If value is NaN or Infinity. + public static MassFlow FromGramsPerHour(QuantityValue gramsperhour) + { + double value = (double) gramsperhour; + return new MassFlow(value, MassFlowUnit.GramPerHour); + } + /// /// Get MassFlow from GramsPerSecond. /// /// If value is NaN or Infinity. @@ -954,6 +968,7 @@ private double AsBaseUnit() case MassFlowUnit.DecigramPerDay: return (_value/86400) * 1e-1d; case MassFlowUnit.DecigramPerSecond: return (_value) * 1e-1d; case MassFlowUnit.GramPerDay: return _value/86400; + case MassFlowUnit.GramPerHour: return _value/3600; case MassFlowUnit.GramPerSecond: return _value; case MassFlowUnit.HectogramPerDay: return (_value/86400) * 1e2d; case MassFlowUnit.HectogramPerSecond: return (_value) * 1e2d; @@ -998,6 +1013,7 @@ private double AsBaseNumericType(MassFlowUnit unit) case MassFlowUnit.DecigramPerDay: return (baseUnitValue*86400) / 1e-1d; case MassFlowUnit.DecigramPerSecond: return (baseUnitValue) / 1e-1d; case MassFlowUnit.GramPerDay: return baseUnitValue*86400; + case MassFlowUnit.GramPerHour: return baseUnitValue*3600; case MassFlowUnit.GramPerSecond: return baseUnitValue; case MassFlowUnit.HectogramPerDay: return (baseUnitValue*86400) / 1e2d; case MassFlowUnit.HectogramPerSecond: return (baseUnitValue) / 1e2d; diff --git a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs index d7f8c09a17..3813aaa5da 100644 --- a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs +++ b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs @@ -589,6 +589,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecigramPerDay, new string[]{"dg/d"}), ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.DecigramPerSecond, new string[]{"dg/S"}), ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerDay, new string[]{"g/d"}), + ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerHour, new string[]{"g/h"}), ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.GramPerSecond, new string[]{"g/S"}), ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.HectogramPerDay, new string[]{"hg/d"}), ("en-US", typeof(MassFlowUnit), (int)MassFlowUnit.HectogramPerSecond, new string[]{"hg/S"}), diff --git a/UnitsNet/GeneratedCode/Units/MassFlowUnit.g.cs b/UnitsNet/GeneratedCode/Units/MassFlowUnit.g.cs index 1000f98a71..1308fd1426 100644 --- a/UnitsNet/GeneratedCode/Units/MassFlowUnit.g.cs +++ b/UnitsNet/GeneratedCode/Units/MassFlowUnit.g.cs @@ -51,6 +51,7 @@ public enum MassFlowUnit DecigramPerDay, DecigramPerSecond, GramPerDay, + GramPerHour, GramPerSecond, HectogramPerDay, HectogramPerSecond,