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,