diff --git a/UnitsNet.Tests/CustomCode/FlowTests.cs b/UnitsNet.Tests/CustomCode/FlowTests.cs index 7487dc946b..de7424e14e 100644 --- a/UnitsNet.Tests/CustomCode/FlowTests.cs +++ b/UnitsNet.Tests/CustomCode/FlowTests.cs @@ -30,9 +30,21 @@ public class FlowTests : FlowTestsBase protected override double MillionUsGallonsPerDayInOneCubicMeterPerSecond => 22.824465227; protected override double CubicMetersPerSecondInOneCubicMeterPerSecond => 1; - + protected override double UsGallonsPerMinuteInOneCubicMeterPerSecond => 15850.323141489; protected override double LitersPerMinuteInOneCubicMeterPerSecond => 60000.00000; + + protected override double NanolitersPerMinuteInOneCubicMeterPerSecond => 60000000000000.00000; + + protected override double MicrolitersPerMinuteInOneCubicMeterPerSecond => 60000000000.00000; + + protected override double MillilitersPerMinuteInOneCubicMeterPerSecond => 60000000.00000; + + protected override double CentilitersPerMinuteInOneCubicMeterPerSecond => 6000000.00000; + + protected override double DecilitersPerMinuteInOneCubicMeterPerSecond => 600000.00000; + + protected override double KilolitersPerMinuteInOneCubicMeterPerSecond => 60.00000; } } \ No newline at end of file diff --git a/UnitsNet.Tests/GeneratedCode/FlowTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/FlowTestsBase.g.cs index 8287346863..3963b8e3a4 100644 --- a/UnitsNet.Tests/GeneratedCode/FlowTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/FlowTestsBase.g.cs @@ -36,19 +36,31 @@ namespace UnitsNet.Tests // ReSharper disable once PartialTypeWithSinglePart public abstract partial class FlowTestsBase { + protected abstract double CentilitersPerMinuteInOneCubicMeterPerSecond { get; } protected abstract double CubicFeetPerSecondInOneCubicMeterPerSecond { get; } protected abstract double CubicMetersPerHourInOneCubicMeterPerSecond { get; } protected abstract double CubicMetersPerSecondInOneCubicMeterPerSecond { get; } + protected abstract double DecilitersPerMinuteInOneCubicMeterPerSecond { get; } + protected abstract double KilolitersPerMinuteInOneCubicMeterPerSecond { get; } protected abstract double LitersPerMinuteInOneCubicMeterPerSecond { get; } + protected abstract double MicrolitersPerMinuteInOneCubicMeterPerSecond { get; } + protected abstract double MillilitersPerMinuteInOneCubicMeterPerSecond { get; } protected abstract double MillionUsGallonsPerDayInOneCubicMeterPerSecond { get; } + protected abstract double NanolitersPerMinuteInOneCubicMeterPerSecond { get; } protected abstract double UsGallonsPerMinuteInOneCubicMeterPerSecond { get; } // ReSharper disable VirtualMemberNeverOverriden.Global + protected virtual double CentilitersPerMinuteTolerance { get { return 1e-5; } } protected virtual double CubicFeetPerSecondTolerance { get { return 1e-5; } } protected virtual double CubicMetersPerHourTolerance { get { return 1e-5; } } protected virtual double CubicMetersPerSecondTolerance { get { return 1e-5; } } + protected virtual double DecilitersPerMinuteTolerance { get { return 1e-5; } } + protected virtual double KilolitersPerMinuteTolerance { get { return 1e-5; } } protected virtual double LitersPerMinuteTolerance { get { return 1e-5; } } + protected virtual double MicrolitersPerMinuteTolerance { get { return 1e-5; } } + protected virtual double MillilitersPerMinuteTolerance { get { return 1e-5; } } protected virtual double MillionUsGallonsPerDayTolerance { get { return 1e-5; } } + protected virtual double NanolitersPerMinuteTolerance { get { return 1e-5; } } protected virtual double UsGallonsPerMinuteTolerance { get { return 1e-5; } } // ReSharper restore VirtualMemberNeverOverriden.Global @@ -56,22 +68,34 @@ public abstract partial class FlowTestsBase public void CubicMeterPerSecondToFlowUnits() { Flow cubicmeterpersecond = Flow.FromCubicMetersPerSecond(1); + Assert.AreEqual(CentilitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.CentilitersPerMinute, CentilitersPerMinuteTolerance); Assert.AreEqual(CubicFeetPerSecondInOneCubicMeterPerSecond, cubicmeterpersecond.CubicFeetPerSecond, CubicFeetPerSecondTolerance); Assert.AreEqual(CubicMetersPerHourInOneCubicMeterPerSecond, cubicmeterpersecond.CubicMetersPerHour, CubicMetersPerHourTolerance); Assert.AreEqual(CubicMetersPerSecondInOneCubicMeterPerSecond, cubicmeterpersecond.CubicMetersPerSecond, CubicMetersPerSecondTolerance); + Assert.AreEqual(DecilitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.DecilitersPerMinute, DecilitersPerMinuteTolerance); + Assert.AreEqual(KilolitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.KilolitersPerMinute, KilolitersPerMinuteTolerance); Assert.AreEqual(LitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.LitersPerMinute, LitersPerMinuteTolerance); + Assert.AreEqual(MicrolitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.MicrolitersPerMinute, MicrolitersPerMinuteTolerance); + Assert.AreEqual(MillilitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.MillilitersPerMinute, MillilitersPerMinuteTolerance); Assert.AreEqual(MillionUsGallonsPerDayInOneCubicMeterPerSecond, cubicmeterpersecond.MillionUsGallonsPerDay, MillionUsGallonsPerDayTolerance); + Assert.AreEqual(NanolitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.NanolitersPerMinute, NanolitersPerMinuteTolerance); Assert.AreEqual(UsGallonsPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.UsGallonsPerMinute, UsGallonsPerMinuteTolerance); } [Test] public void FromValueAndUnit() { + Assert.AreEqual(1, Flow.From(1, FlowUnit.CentilitersPerMinute).CentilitersPerMinute, CentilitersPerMinuteTolerance); Assert.AreEqual(1, Flow.From(1, FlowUnit.CubicFootPerSecond).CubicFeetPerSecond, CubicFeetPerSecondTolerance); Assert.AreEqual(1, Flow.From(1, FlowUnit.CubicMeterPerHour).CubicMetersPerHour, CubicMetersPerHourTolerance); Assert.AreEqual(1, Flow.From(1, FlowUnit.CubicMeterPerSecond).CubicMetersPerSecond, CubicMetersPerSecondTolerance); + Assert.AreEqual(1, Flow.From(1, FlowUnit.DecilitersPerMinute).DecilitersPerMinute, DecilitersPerMinuteTolerance); + Assert.AreEqual(1, Flow.From(1, FlowUnit.KilolitersPerMinute).KilolitersPerMinute, KilolitersPerMinuteTolerance); Assert.AreEqual(1, Flow.From(1, FlowUnit.LitersPerMinute).LitersPerMinute, LitersPerMinuteTolerance); + Assert.AreEqual(1, Flow.From(1, FlowUnit.MicrolitersPerMinute).MicrolitersPerMinute, MicrolitersPerMinuteTolerance); + Assert.AreEqual(1, Flow.From(1, FlowUnit.MillilitersPerMinute).MillilitersPerMinute, MillilitersPerMinuteTolerance); Assert.AreEqual(1, Flow.From(1, FlowUnit.MillionUsGallonsPerDay).MillionUsGallonsPerDay, MillionUsGallonsPerDayTolerance); + Assert.AreEqual(1, Flow.From(1, FlowUnit.NanolitersPerMinute).NanolitersPerMinute, NanolitersPerMinuteTolerance); Assert.AreEqual(1, Flow.From(1, FlowUnit.UsGallonsPerMinute).UsGallonsPerMinute, UsGallonsPerMinuteTolerance); } @@ -79,11 +103,17 @@ public void FromValueAndUnit() public void As() { var cubicmeterpersecond = Flow.FromCubicMetersPerSecond(1); + Assert.AreEqual(CentilitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.CentilitersPerMinute), CentilitersPerMinuteTolerance); Assert.AreEqual(CubicFeetPerSecondInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.CubicFootPerSecond), CubicFeetPerSecondTolerance); Assert.AreEqual(CubicMetersPerHourInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.CubicMeterPerHour), CubicMetersPerHourTolerance); Assert.AreEqual(CubicMetersPerSecondInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.CubicMeterPerSecond), CubicMetersPerSecondTolerance); + Assert.AreEqual(DecilitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.DecilitersPerMinute), DecilitersPerMinuteTolerance); + Assert.AreEqual(KilolitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.KilolitersPerMinute), KilolitersPerMinuteTolerance); Assert.AreEqual(LitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.LitersPerMinute), LitersPerMinuteTolerance); + Assert.AreEqual(MicrolitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.MicrolitersPerMinute), MicrolitersPerMinuteTolerance); + Assert.AreEqual(MillilitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.MillilitersPerMinute), MillilitersPerMinuteTolerance); Assert.AreEqual(MillionUsGallonsPerDayInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.MillionUsGallonsPerDay), MillionUsGallonsPerDayTolerance); + Assert.AreEqual(NanolitersPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.NanolitersPerMinute), NanolitersPerMinuteTolerance); Assert.AreEqual(UsGallonsPerMinuteInOneCubicMeterPerSecond, cubicmeterpersecond.As(FlowUnit.UsGallonsPerMinute), UsGallonsPerMinuteTolerance); } @@ -91,11 +121,17 @@ public void As() public void ConversionRoundTrip() { Flow cubicmeterpersecond = Flow.FromCubicMetersPerSecond(1); + Assert.AreEqual(1, Flow.FromCentilitersPerMinute(cubicmeterpersecond.CentilitersPerMinute).CubicMetersPerSecond, CentilitersPerMinuteTolerance); Assert.AreEqual(1, Flow.FromCubicFeetPerSecond(cubicmeterpersecond.CubicFeetPerSecond).CubicMetersPerSecond, CubicFeetPerSecondTolerance); Assert.AreEqual(1, Flow.FromCubicMetersPerHour(cubicmeterpersecond.CubicMetersPerHour).CubicMetersPerSecond, CubicMetersPerHourTolerance); Assert.AreEqual(1, Flow.FromCubicMetersPerSecond(cubicmeterpersecond.CubicMetersPerSecond).CubicMetersPerSecond, CubicMetersPerSecondTolerance); + Assert.AreEqual(1, Flow.FromDecilitersPerMinute(cubicmeterpersecond.DecilitersPerMinute).CubicMetersPerSecond, DecilitersPerMinuteTolerance); + Assert.AreEqual(1, Flow.FromKilolitersPerMinute(cubicmeterpersecond.KilolitersPerMinute).CubicMetersPerSecond, KilolitersPerMinuteTolerance); Assert.AreEqual(1, Flow.FromLitersPerMinute(cubicmeterpersecond.LitersPerMinute).CubicMetersPerSecond, LitersPerMinuteTolerance); + Assert.AreEqual(1, Flow.FromMicrolitersPerMinute(cubicmeterpersecond.MicrolitersPerMinute).CubicMetersPerSecond, MicrolitersPerMinuteTolerance); + Assert.AreEqual(1, Flow.FromMillilitersPerMinute(cubicmeterpersecond.MillilitersPerMinute).CubicMetersPerSecond, MillilitersPerMinuteTolerance); Assert.AreEqual(1, Flow.FromMillionUsGallonsPerDay(cubicmeterpersecond.MillionUsGallonsPerDay).CubicMetersPerSecond, MillionUsGallonsPerDayTolerance); + Assert.AreEqual(1, Flow.FromNanolitersPerMinute(cubicmeterpersecond.NanolitersPerMinute).CubicMetersPerSecond, NanolitersPerMinuteTolerance); Assert.AreEqual(1, Flow.FromUsGallonsPerMinute(cubicmeterpersecond.UsGallonsPerMinute).CubicMetersPerSecond, UsGallonsPerMinuteTolerance); } diff --git a/UnitsNet/GeneratedCode/Enums/FlowUnit.g.cs b/UnitsNet/GeneratedCode/Enums/FlowUnit.g.cs index b146a4a812..4fb0a545c7 100644 --- a/UnitsNet/GeneratedCode/Enums/FlowUnit.g.cs +++ b/UnitsNet/GeneratedCode/Enums/FlowUnit.g.cs @@ -25,11 +25,17 @@ namespace UnitsNet.Units public enum FlowUnit { Undefined = 0, + CentilitersPerMinute, CubicFootPerSecond, CubicMeterPerHour, CubicMeterPerSecond, + DecilitersPerMinute, + KilolitersPerMinute, LitersPerMinute, + MicrolitersPerMinute, + MillilitersPerMinute, MillionUsGallonsPerDay, + NanolitersPerMinute, UsGallonsPerMinute, } } diff --git a/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs index c174e41f5f..c85b943c5f 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Flow.g.cs @@ -54,6 +54,14 @@ public static FlowUnit BaseUnit get { return FlowUnit.CubicMeterPerSecond; } } + /// + /// Get Flow in CentilitersPerMinute. + /// + public double CentilitersPerMinute + { + get { return (_cubicMetersPerSecond*60000.00000) / 1e-2d; } + } + /// /// Get Flow in CubicFeetPerSecond. /// @@ -78,6 +86,22 @@ public double CubicMetersPerSecond get { return _cubicMetersPerSecond; } } + /// + /// Get Flow in DecilitersPerMinute. + /// + public double DecilitersPerMinute + { + get { return (_cubicMetersPerSecond*60000.00000) / 1e-1d; } + } + + /// + /// Get Flow in KilolitersPerMinute. + /// + public double KilolitersPerMinute + { + get { return (_cubicMetersPerSecond*60000.00000) / 1e3d; } + } + /// /// Get Flow in LitersPerMinute. /// @@ -86,6 +110,22 @@ public double LitersPerMinute get { return _cubicMetersPerSecond*60000.00000; } } + /// + /// Get Flow in MicrolitersPerMinute. + /// + public double MicrolitersPerMinute + { + get { return (_cubicMetersPerSecond*60000.00000) / 1e-6d; } + } + + /// + /// Get Flow in MillilitersPerMinute. + /// + public double MillilitersPerMinute + { + get { return (_cubicMetersPerSecond*60000.00000) / 1e-3d; } + } + /// /// Get Flow in MillionUsGallonsPerDay. /// @@ -94,6 +134,14 @@ public double MillionUsGallonsPerDay get { return _cubicMetersPerSecond*22.824465227; } } + /// + /// Get Flow in NanolitersPerMinute. + /// + public double NanolitersPerMinute + { + get { return (_cubicMetersPerSecond*60000.00000) / 1e-9d; } + } + /// /// Get Flow in UsGallonsPerMinute. /// @@ -111,6 +159,14 @@ public static Flow Zero get { return new Flow(); } } + /// + /// Get Flow from CentilitersPerMinute. + /// + public static Flow FromCentilitersPerMinute(double centilitersperminute) + { + return new Flow((centilitersperminute/60000.00000) * 1e-2d); + } + /// /// Get Flow from CubicFeetPerSecond. /// @@ -135,6 +191,22 @@ public static Flow FromCubicMetersPerSecond(double cubicmeterspersecond) return new Flow(cubicmeterspersecond); } + /// + /// Get Flow from DecilitersPerMinute. + /// + public static Flow FromDecilitersPerMinute(double decilitersperminute) + { + return new Flow((decilitersperminute/60000.00000) * 1e-1d); + } + + /// + /// Get Flow from KilolitersPerMinute. + /// + public static Flow FromKilolitersPerMinute(double kilolitersperminute) + { + return new Flow((kilolitersperminute/60000.00000) * 1e3d); + } + /// /// Get Flow from LitersPerMinute. /// @@ -143,6 +215,22 @@ public static Flow FromLitersPerMinute(double litersperminute) return new Flow(litersperminute/60000.00000); } + /// + /// Get Flow from MicrolitersPerMinute. + /// + public static Flow FromMicrolitersPerMinute(double microlitersperminute) + { + return new Flow((microlitersperminute/60000.00000) * 1e-6d); + } + + /// + /// Get Flow from MillilitersPerMinute. + /// + public static Flow FromMillilitersPerMinute(double millilitersperminute) + { + return new Flow((millilitersperminute/60000.00000) * 1e-3d); + } + /// /// Get Flow from MillionUsGallonsPerDay. /// @@ -151,6 +239,14 @@ public static Flow FromMillionUsGallonsPerDay(double millionusgallonsperday) return new Flow(millionusgallonsperday/22.824465227); } + /// + /// Get Flow from NanolitersPerMinute. + /// + public static Flow FromNanolitersPerMinute(double nanolitersperminute) + { + return new Flow((nanolitersperminute/60000.00000) * 1e-9d); + } + /// /// Get Flow from UsGallonsPerMinute. /// @@ -170,16 +266,28 @@ public static Flow From(double value, FlowUnit fromUnit) { switch (fromUnit) { + case FlowUnit.CentilitersPerMinute: + return FromCentilitersPerMinute(value); case FlowUnit.CubicFootPerSecond: return FromCubicFeetPerSecond(value); case FlowUnit.CubicMeterPerHour: return FromCubicMetersPerHour(value); case FlowUnit.CubicMeterPerSecond: return FromCubicMetersPerSecond(value); + case FlowUnit.DecilitersPerMinute: + return FromDecilitersPerMinute(value); + case FlowUnit.KilolitersPerMinute: + return FromKilolitersPerMinute(value); case FlowUnit.LitersPerMinute: return FromLitersPerMinute(value); + case FlowUnit.MicrolitersPerMinute: + return FromMicrolitersPerMinute(value); + case FlowUnit.MillilitersPerMinute: + return FromMillilitersPerMinute(value); case FlowUnit.MillionUsGallonsPerDay: return FromMillionUsGallonsPerDay(value); + case FlowUnit.NanolitersPerMinute: + return FromNanolitersPerMinute(value); case FlowUnit.UsGallonsPerMinute: return FromUsGallonsPerMinute(value); @@ -315,16 +423,28 @@ public double As(FlowUnit unit) { switch (unit) { + case FlowUnit.CentilitersPerMinute: + return CentilitersPerMinute; case FlowUnit.CubicFootPerSecond: return CubicFeetPerSecond; case FlowUnit.CubicMeterPerHour: return CubicMetersPerHour; case FlowUnit.CubicMeterPerSecond: return CubicMetersPerSecond; + case FlowUnit.DecilitersPerMinute: + return DecilitersPerMinute; + case FlowUnit.KilolitersPerMinute: + return KilolitersPerMinute; case FlowUnit.LitersPerMinute: return LitersPerMinute; + case FlowUnit.MicrolitersPerMinute: + return MicrolitersPerMinute; + case FlowUnit.MillilitersPerMinute: + return MillilitersPerMinute; case FlowUnit.MillionUsGallonsPerDay: return MillionUsGallonsPerDay; + case FlowUnit.NanolitersPerMinute: + return NanolitersPerMinute; case FlowUnit.UsGallonsPerMinute: return UsGallonsPerMinute; diff --git a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs index 3f26b776fa..61bbe79923 100644 --- a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs +++ b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs @@ -543,6 +543,11 @@ private static readonly ReadOnlyCollection DefaultLocalization new UnitLocalization(typeof (FlowUnit), new[] { + new CulturesForEnumValue((int) FlowUnit.CentilitersPerMinute, + new[] + { + new AbbreviationsForCulture("en-US", "cLPM"), + }), new CulturesForEnumValue((int) FlowUnit.CubicFootPerSecond, new[] { @@ -560,16 +565,41 @@ private static readonly ReadOnlyCollection DefaultLocalization new AbbreviationsForCulture("en-US", "m³/s"), new AbbreviationsForCulture("ru-RU", "м³/с"), }), + new CulturesForEnumValue((int) FlowUnit.DecilitersPerMinute, + new[] + { + new AbbreviationsForCulture("en-US", "dLPM"), + }), + new CulturesForEnumValue((int) FlowUnit.KilolitersPerMinute, + new[] + { + new AbbreviationsForCulture("en-US", "kLPM"), + }), new CulturesForEnumValue((int) FlowUnit.LitersPerMinute, new[] { new AbbreviationsForCulture("en-US", "LPM"), }), + new CulturesForEnumValue((int) FlowUnit.MicrolitersPerMinute, + new[] + { + new AbbreviationsForCulture("en-US", "μLPM"), + }), + new CulturesForEnumValue((int) FlowUnit.MillilitersPerMinute, + new[] + { + new AbbreviationsForCulture("en-US", "mLPM"), + }), new CulturesForEnumValue((int) FlowUnit.MillionUsGallonsPerDay, new[] { new AbbreviationsForCulture("en-US", "MGD"), }), + new CulturesForEnumValue((int) FlowUnit.NanolitersPerMinute, + new[] + { + new AbbreviationsForCulture("en-US", "nLPM"), + }), new CulturesForEnumValue((int) FlowUnit.UsGallonsPerMinute, new[] { diff --git a/UnitsNet/Scripts/UnitDefinitions/Flow.json b/UnitsNet/Scripts/UnitDefinitions/Flow.json index be34971356..f30e9b948c 100644 --- a/UnitsNet/Scripts/UnitDefinitions/Flow.json +++ b/UnitsNet/Scripts/UnitDefinitions/Flow.json @@ -64,10 +64,12 @@ "PluralName": "LitersPerMinute", "FromUnitToBaseFunc": "x/60000.00000", "FromBaseToUnitFunc": "x*60000.00000", + "Prefixes": [ "Nano", "Micro", "Milli", "Centi", "Deci", "Kilo"], "Localization": [ { "Culture": "en-US", - "Abbreviations": [ "LPM" ] + "Abbreviations": [ "LPM" ], + "AbbreviationsWithPrefixes": ["nLPM", "μLPM", "mLPM", "cLPM", "dLPM", "kLPM"] } ] },