diff --git a/Common/UnitDefinitions/Frequency.json b/Common/UnitDefinitions/Frequency.json index c82946ecbc..9d60cdd35e 100644 --- a/Common/UnitDefinitions/Frequency.json +++ b/Common/UnitDefinitions/Frequency.json @@ -55,6 +55,18 @@ "Abbreviations": [ "cph" ] } ] + }, + { + "SingularName": "BeatPerMinute", + "PluralName": "BeatsPerMinute", + "FromUnitToBaseFunc": "x/60", + "FromBaseToUnitFunc": "x*60", + "Localization": [ + { + "Culture": "en-US", + "Abbreviations": [ "bpm" ] + } + ] } ] } diff --git a/UnitsNet.Tests/CustomCode/FrequencyTests.cs b/UnitsNet.Tests/CustomCode/FrequencyTests.cs index 3a38d0830b..b32012b2d9 100644 --- a/UnitsNet.Tests/CustomCode/FrequencyTests.cs +++ b/UnitsNet.Tests/CustomCode/FrequencyTests.cs @@ -40,5 +40,7 @@ public class FrequencyTests : FrequencyTestsBase protected override double CyclesPerMinuteInOneHertz => 60; protected override double RadiansPerSecondInOneHertz => 2*Math.PI; + + protected override double BeatsPerMinuteInOneHertz => 60; } } diff --git a/UnitsNet/GeneratedCode/Quantities/Frequency.NetFramework.g.cs b/UnitsNet/GeneratedCode/Quantities/Frequency.NetFramework.g.cs index 2a9033426b..a901e3d7b9 100644 --- a/UnitsNet/GeneratedCode/Quantities/Frequency.NetFramework.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Frequency.NetFramework.g.cs @@ -158,6 +158,11 @@ public Frequency(double numericValue, FrequencyUnit unit) #region Conversion Properties + /// + /// Get Frequency in BeatsPerMinute. + /// + public double BeatsPerMinute => As(FrequencyUnit.BeatPerMinute); + /// /// Get Frequency in CyclesPerHour. /// @@ -227,6 +232,15 @@ public static string GetAbbreviation(FrequencyUnit unit, [CanBeNull] IFormatProv #region Static Factory Methods + /// + /// Get Frequency from BeatsPerMinute. + /// + /// If value is NaN or Infinity. + public static Frequency FromBeatsPerMinute(QuantityValue beatsperminute) + { + double value = (double) beatsperminute; + return new Frequency(value, FrequencyUnit.BeatPerMinute); + } /// /// Get Frequency from CyclesPerHour. /// @@ -657,6 +671,7 @@ private double AsBaseUnit() { switch(Unit) { + case FrequencyUnit.BeatPerMinute: return _value/60; case FrequencyUnit.CyclePerHour: return _value/3600; case FrequencyUnit.CyclePerMinute: return _value/60; case FrequencyUnit.Gigahertz: return (_value) * 1e9d; @@ -679,6 +694,7 @@ private double AsBaseNumericType(FrequencyUnit unit) switch(unit) { + case FrequencyUnit.BeatPerMinute: return baseUnitValue*60; case FrequencyUnit.CyclePerHour: return baseUnitValue*3600; case FrequencyUnit.CyclePerMinute: return baseUnitValue*60; case FrequencyUnit.Gigahertz: return (baseUnitValue) / 1e9d; diff --git a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs index 6bf7d0e29a..9b90ce19fd 100644 --- a/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs +++ b/UnitsNet/GeneratedCode/UnitAbbreviationsCache.g.cs @@ -400,6 +400,7 @@ private static readonly (string CultureName, Type UnitType, int UnitValue, strin ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.MillinewtonPerMeter, new string[]{"mN/m"}), ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NanonewtonPerMeter, new string[]{"nN/m"}), ("en-US", typeof(ForcePerLengthUnit), (int)ForcePerLengthUnit.NewtonPerMeter, new string[]{"N/m"}), + ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.BeatPerMinute, new string[]{"bpm"}), ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.CyclePerHour, new string[]{"cph"}), ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.CyclePerMinute, new string[]{"cpm"}), ("en-US", typeof(FrequencyUnit), (int)FrequencyUnit.Gigahertz, new string[]{"GHz"}), diff --git a/UnitsNet/GeneratedCode/Units/FrequencyUnit.g.cs b/UnitsNet/GeneratedCode/Units/FrequencyUnit.g.cs index 98d4d43584..255d655289 100644 --- a/UnitsNet/GeneratedCode/Units/FrequencyUnit.g.cs +++ b/UnitsNet/GeneratedCode/Units/FrequencyUnit.g.cs @@ -44,6 +44,7 @@ namespace UnitsNet.Units public enum FrequencyUnit { Undefined = 0, + BeatPerMinute, CyclePerHour, CyclePerMinute, Gigahertz,