diff --git a/UnitsNet.Tests/CustomCode/SpeedTests.cs b/UnitsNet.Tests/CustomCode/SpeedTests.cs index 1949266c8c..862e98021a 100644 --- a/UnitsNet.Tests/CustomCode/SpeedTests.cs +++ b/UnitsNet.Tests/CustomCode/SpeedTests.cs @@ -47,5 +47,10 @@ protected override double MilesPerHourInOneMeterPerSecond { get { return 2.23694; } } + + protected override double MillimetersPerSecondInOneMeterPerSecond + { + get { return 1000; } + } } } \ No newline at end of file diff --git a/UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs index 44105a7cfe..895bdf5b8d 100644 --- a/UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs @@ -41,6 +41,7 @@ public abstract partial class SpeedTestsBase protected abstract double KnotsInOneMeterPerSecond { get; } protected abstract double MetersPerSecondInOneMeterPerSecond { get; } protected abstract double MilesPerHourInOneMeterPerSecond { get; } + protected abstract double MillimetersPerSecondInOneMeterPerSecond { get; } // ReSharper disable VirtualMemberNeverOverriden.Global protected virtual double FeetPerSecondTolerance { get { return 1e-5; } } @@ -48,6 +49,7 @@ public abstract partial class SpeedTestsBase protected virtual double KnotsTolerance { get { return 1e-5; } } protected virtual double MetersPerSecondTolerance { get { return 1e-5; } } protected virtual double MilesPerHourTolerance { get { return 1e-5; } } + protected virtual double MillimetersPerSecondTolerance { get { return 1e-5; } } // ReSharper restore VirtualMemberNeverOverriden.Global [Test] @@ -59,6 +61,7 @@ public void MeterPerSecondToSpeedUnits() Assert.AreEqual(KnotsInOneMeterPerSecond, meterpersecond.Knots, KnotsTolerance); Assert.AreEqual(MetersPerSecondInOneMeterPerSecond, meterpersecond.MetersPerSecond, MetersPerSecondTolerance); Assert.AreEqual(MilesPerHourInOneMeterPerSecond, meterpersecond.MilesPerHour, MilesPerHourTolerance); + Assert.AreEqual(MillimetersPerSecondInOneMeterPerSecond, meterpersecond.MillimetersPerSecond, MillimetersPerSecondTolerance); } [Test] @@ -69,6 +72,7 @@ public void FromValueAndUnit() Assert.AreEqual(1, Speed.From(1, SpeedUnit.Knot).Knots, KnotsTolerance); Assert.AreEqual(1, Speed.From(1, SpeedUnit.MeterPerSecond).MetersPerSecond, MetersPerSecondTolerance); Assert.AreEqual(1, Speed.From(1, SpeedUnit.MilePerHour).MilesPerHour, MilesPerHourTolerance); + Assert.AreEqual(1, Speed.From(1, SpeedUnit.MillimeterPerSecond).MillimetersPerSecond, MillimetersPerSecondTolerance); } [Test] @@ -80,6 +84,7 @@ public void As() Assert.AreEqual(KnotsInOneMeterPerSecond, meterpersecond.As(SpeedUnit.Knot), KnotsTolerance); Assert.AreEqual(MetersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MeterPerSecond), MetersPerSecondTolerance); Assert.AreEqual(MilesPerHourInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MilePerHour), MilesPerHourTolerance); + Assert.AreEqual(MillimetersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MillimeterPerSecond), MillimetersPerSecondTolerance); } [Test] @@ -91,6 +96,7 @@ public void ConversionRoundTrip() Assert.AreEqual(1, Speed.FromKnots(meterpersecond.Knots).MetersPerSecond, KnotsTolerance); Assert.AreEqual(1, Speed.FromMetersPerSecond(meterpersecond.MetersPerSecond).MetersPerSecond, MetersPerSecondTolerance); Assert.AreEqual(1, Speed.FromMilesPerHour(meterpersecond.MilesPerHour).MetersPerSecond, MilesPerHourTolerance); + Assert.AreEqual(1, Speed.FromMillimetersPerSecond(meterpersecond.MillimetersPerSecond).MetersPerSecond, MillimetersPerSecondTolerance); } [Test] diff --git a/UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs b/UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs index 4c18b9b137..2ef59eec94 100644 --- a/UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs +++ b/UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs @@ -30,5 +30,6 @@ public enum SpeedUnit Knot, MeterPerSecond, MilePerHour, + MillimeterPerSecond, } } diff --git a/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs index 9afbec9a24..4086050605 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs @@ -88,6 +88,14 @@ public double MilesPerHour get { return _metersPerSecond/0.44704; } } + /// + /// Get Speed in MillimetersPerSecond. + /// + public double MillimetersPerSecond + { + get { return _metersPerSecond/0.001; } + } + #endregion #region Static @@ -137,6 +145,14 @@ public static Speed FromMilesPerHour(double milesperhour) return new Speed(milesperhour*0.44704); } + /// + /// Get Speed from MillimetersPerSecond. + /// + public static Speed FromMillimetersPerSecond(double millimeterspersecond) + { + return new Speed(millimeterspersecond*0.001); + } + /// /// Dynamically convert from value and unit enum to . @@ -158,6 +174,8 @@ public static Speed From(double value, SpeedUnit fromUnit) return FromMetersPerSecond(value); case SpeedUnit.MilePerHour: return FromMilesPerHour(value); + case SpeedUnit.MillimeterPerSecond: + return FromMillimetersPerSecond(value); default: throw new NotImplementedException("fromUnit: " + fromUnit); @@ -301,6 +319,8 @@ public double As(SpeedUnit unit) return MetersPerSecond; case SpeedUnit.MilePerHour: return MilesPerHour; + case SpeedUnit.MillimeterPerSecond: + return MillimetersPerSecond; default: throw new NotImplementedException("unit: " + unit); diff --git a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs index 12b995b38c..802e396605 100644 --- a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs +++ b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs @@ -1260,6 +1260,11 @@ private static readonly ReadOnlyCollection DefaultLocalization { new AbbreviationsForCulture("en-US", "mph"), }), + new CulturesForEnumValue((int) SpeedUnit.MillimeterPerSecond, + new[] + { + new AbbreviationsForCulture("en-US", "mm/s"), + }), }), new UnitLocalization(typeof (TemperatureUnit), new[] diff --git a/UnitsNet/Scripts/UnitDefinitions/Speed.json b/UnitsNet/Scripts/UnitDefinitions/Speed.json index b0641d6671..bc97fd7afc 100644 --- a/UnitsNet/Scripts/UnitDefinitions/Speed.json +++ b/UnitsNet/Scripts/UnitDefinitions/Speed.json @@ -15,6 +15,18 @@ } ] }, + { + "SingularName": "MillimeterPerSecond", + "PluralName": "MillimetersPerSecond", + "FromUnitToBaseFunc": "x*0.001", + "FromBaseToUnitFunc": "x/0.001", + "Localization": [ + { + "Culture": "en-US", + "Abbreviations": ["mm/s"] + } + ] + }, { "SingularName": "FootPerSecond", "PluralName": "FeetPerSecond",