Skip to content

Commit

Permalink
Add cm/h and mm/h (angularsen#246)
Browse files Browse the repository at this point in the history
cm/h is used to meassure vessel icing and mm/h precipitation
  • Loading branch information
eriove authored and angularsen committed May 4, 2017
1 parent 14920c8 commit 5321a7c
Show file tree
Hide file tree
Showing 7 changed files with 174 additions and 15 deletions.
4 changes: 4 additions & 0 deletions UnitsNet.Tests/CustomCode/SpeedTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,10 @@ public class SpeedTests : SpeedTestsBase

protected override double KilometersPerMinutesInOneMeterPerSecond => 0.06;

protected override double CentimetersPerHourInOneMeterPerSecond => 360000;

protected override double MillimetersPerHourInOneMeterPerSecond => 3600000;

[Test]
public void DurationSpeedTimesEqualsLength()
{
Expand Down
12 changes: 12 additions & 0 deletions UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ namespace UnitsNet.Tests
// ReSharper disable once PartialTypeWithSinglePart
public abstract partial class SpeedTestsBase
{
protected abstract double CentimetersPerHourInOneMeterPerSecond { get; }
protected abstract double CentimetersPerMinutesInOneMeterPerSecond { get; }
protected abstract double CentimetersPerSecondInOneMeterPerSecond { get; }
protected abstract double DecimetersPerMinutesInOneMeterPerSecond { get; }
Expand All @@ -68,12 +69,14 @@ public abstract partial class SpeedTestsBase
protected abstract double MicrometersPerMinutesInOneMeterPerSecond { get; }
protected abstract double MicrometersPerSecondInOneMeterPerSecond { get; }
protected abstract double MilesPerHourInOneMeterPerSecond { get; }
protected abstract double MillimetersPerHourInOneMeterPerSecond { get; }
protected abstract double MillimetersPerMinutesInOneMeterPerSecond { get; }
protected abstract double MillimetersPerSecondInOneMeterPerSecond { get; }
protected abstract double NanometersPerMinutesInOneMeterPerSecond { get; }
protected abstract double NanometersPerSecondInOneMeterPerSecond { get; }

// ReSharper disable VirtualMemberNeverOverriden.Global
protected virtual double CentimetersPerHourTolerance { get { return 1e-5; } }
protected virtual double CentimetersPerMinutesTolerance { get { return 1e-5; } }
protected virtual double CentimetersPerSecondTolerance { get { return 1e-5; } }
protected virtual double DecimetersPerMinutesTolerance { get { return 1e-5; } }
Expand All @@ -89,6 +92,7 @@ public abstract partial class SpeedTestsBase
protected virtual double MicrometersPerMinutesTolerance { get { return 1e-5; } }
protected virtual double MicrometersPerSecondTolerance { get { return 1e-5; } }
protected virtual double MilesPerHourTolerance { get { return 1e-5; } }
protected virtual double MillimetersPerHourTolerance { get { return 1e-5; } }
protected virtual double MillimetersPerMinutesTolerance { get { return 1e-5; } }
protected virtual double MillimetersPerSecondTolerance { get { return 1e-5; } }
protected virtual double NanometersPerMinutesTolerance { get { return 1e-5; } }
Expand All @@ -99,6 +103,7 @@ public abstract partial class SpeedTestsBase
public void MeterPerSecondToSpeedUnits()
{
Speed meterpersecond = Speed.FromMetersPerSecond(1);
Assert.AreEqual(CentimetersPerHourInOneMeterPerSecond, meterpersecond.CentimetersPerHour, CentimetersPerHourTolerance);
Assert.AreEqual(CentimetersPerMinutesInOneMeterPerSecond, meterpersecond.CentimetersPerMinutes, CentimetersPerMinutesTolerance);
Assert.AreEqual(CentimetersPerSecondInOneMeterPerSecond, meterpersecond.CentimetersPerSecond, CentimetersPerSecondTolerance);
Assert.AreEqual(DecimetersPerMinutesInOneMeterPerSecond, meterpersecond.DecimetersPerMinutes, DecimetersPerMinutesTolerance);
Expand All @@ -114,6 +119,7 @@ public void MeterPerSecondToSpeedUnits()
Assert.AreEqual(MicrometersPerMinutesInOneMeterPerSecond, meterpersecond.MicrometersPerMinutes, MicrometersPerMinutesTolerance);
Assert.AreEqual(MicrometersPerSecondInOneMeterPerSecond, meterpersecond.MicrometersPerSecond, MicrometersPerSecondTolerance);
Assert.AreEqual(MilesPerHourInOneMeterPerSecond, meterpersecond.MilesPerHour, MilesPerHourTolerance);
Assert.AreEqual(MillimetersPerHourInOneMeterPerSecond, meterpersecond.MillimetersPerHour, MillimetersPerHourTolerance);
Assert.AreEqual(MillimetersPerMinutesInOneMeterPerSecond, meterpersecond.MillimetersPerMinutes, MillimetersPerMinutesTolerance);
Assert.AreEqual(MillimetersPerSecondInOneMeterPerSecond, meterpersecond.MillimetersPerSecond, MillimetersPerSecondTolerance);
Assert.AreEqual(NanometersPerMinutesInOneMeterPerSecond, meterpersecond.NanometersPerMinutes, NanometersPerMinutesTolerance);
Expand All @@ -123,6 +129,7 @@ public void MeterPerSecondToSpeedUnits()
[Test]
public void FromValueAndUnit()
{
Assert.AreEqual(1, Speed.From(1, SpeedUnit.CentimeterPerHour).CentimetersPerHour, CentimetersPerHourTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.CentimeterPerMinute).CentimetersPerMinutes, CentimetersPerMinutesTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.CentimeterPerSecond).CentimetersPerSecond, CentimetersPerSecondTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.DecimeterPerMinute).DecimetersPerMinutes, DecimetersPerMinutesTolerance);
Expand All @@ -138,6 +145,7 @@ public void FromValueAndUnit()
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MicrometerPerMinute).MicrometersPerMinutes, MicrometersPerMinutesTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MicrometerPerSecond).MicrometersPerSecond, MicrometersPerSecondTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MilePerHour).MilesPerHour, MilesPerHourTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MillimeterPerHour).MillimetersPerHour, MillimetersPerHourTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MillimeterPerMinute).MillimetersPerMinutes, MillimetersPerMinutesTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MillimeterPerSecond).MillimetersPerSecond, MillimetersPerSecondTolerance);
Assert.AreEqual(1, Speed.From(1, SpeedUnit.NanometerPerMinute).NanometersPerMinutes, NanometersPerMinutesTolerance);
Expand All @@ -148,6 +156,7 @@ public void FromValueAndUnit()
public void As()
{
var meterpersecond = Speed.FromMetersPerSecond(1);
Assert.AreEqual(CentimetersPerHourInOneMeterPerSecond, meterpersecond.As(SpeedUnit.CentimeterPerHour), CentimetersPerHourTolerance);
Assert.AreEqual(CentimetersPerMinutesInOneMeterPerSecond, meterpersecond.As(SpeedUnit.CentimeterPerMinute), CentimetersPerMinutesTolerance);
Assert.AreEqual(CentimetersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.CentimeterPerSecond), CentimetersPerSecondTolerance);
Assert.AreEqual(DecimetersPerMinutesInOneMeterPerSecond, meterpersecond.As(SpeedUnit.DecimeterPerMinute), DecimetersPerMinutesTolerance);
Expand All @@ -163,6 +172,7 @@ public void As()
Assert.AreEqual(MicrometersPerMinutesInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MicrometerPerMinute), MicrometersPerMinutesTolerance);
Assert.AreEqual(MicrometersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MicrometerPerSecond), MicrometersPerSecondTolerance);
Assert.AreEqual(MilesPerHourInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MilePerHour), MilesPerHourTolerance);
Assert.AreEqual(MillimetersPerHourInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MillimeterPerHour), MillimetersPerHourTolerance);
Assert.AreEqual(MillimetersPerMinutesInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MillimeterPerMinute), MillimetersPerMinutesTolerance);
Assert.AreEqual(MillimetersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MillimeterPerSecond), MillimetersPerSecondTolerance);
Assert.AreEqual(NanometersPerMinutesInOneMeterPerSecond, meterpersecond.As(SpeedUnit.NanometerPerMinute), NanometersPerMinutesTolerance);
Expand All @@ -173,6 +183,7 @@ public void As()
public void ConversionRoundTrip()
{
Speed meterpersecond = Speed.FromMetersPerSecond(1);
Assert.AreEqual(1, Speed.FromCentimetersPerHour(meterpersecond.CentimetersPerHour).MetersPerSecond, CentimetersPerHourTolerance);
Assert.AreEqual(1, Speed.FromCentimetersPerMinutes(meterpersecond.CentimetersPerMinutes).MetersPerSecond, CentimetersPerMinutesTolerance);
Assert.AreEqual(1, Speed.FromCentimetersPerSecond(meterpersecond.CentimetersPerSecond).MetersPerSecond, CentimetersPerSecondTolerance);
Assert.AreEqual(1, Speed.FromDecimetersPerMinutes(meterpersecond.DecimetersPerMinutes).MetersPerSecond, DecimetersPerMinutesTolerance);
Expand All @@ -188,6 +199,7 @@ public void ConversionRoundTrip()
Assert.AreEqual(1, Speed.FromMicrometersPerMinutes(meterpersecond.MicrometersPerMinutes).MetersPerSecond, MicrometersPerMinutesTolerance);
Assert.AreEqual(1, Speed.FromMicrometersPerSecond(meterpersecond.MicrometersPerSecond).MetersPerSecond, MicrometersPerSecondTolerance);
Assert.AreEqual(1, Speed.FromMilesPerHour(meterpersecond.MilesPerHour).MetersPerSecond, MilesPerHourTolerance);
Assert.AreEqual(1, Speed.FromMillimetersPerHour(meterpersecond.MillimetersPerHour).MetersPerSecond, MillimetersPerHourTolerance);
Assert.AreEqual(1, Speed.FromMillimetersPerMinutes(meterpersecond.MillimetersPerMinutes).MetersPerSecond, MillimetersPerMinutesTolerance);
Assert.AreEqual(1, Speed.FromMillimetersPerSecond(meterpersecond.MillimetersPerSecond).MetersPerSecond, MillimetersPerSecondTolerance);
Assert.AreEqual(1, Speed.FromNanometersPerMinutes(meterpersecond.NanometersPerMinutes).MetersPerSecond, NanometersPerMinutesTolerance);
Expand Down
2 changes: 2 additions & 0 deletions UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,7 @@ namespace UnitsNet.Units
public enum SpeedUnit
{
Undefined = 0,
CentimeterPerHour,
CentimeterPerMinute,
CentimeterPerSecond,
DecimeterPerMinute,
Expand All @@ -57,6 +58,7 @@ public enum SpeedUnit
MicrometerPerMinute,
MicrometerPerSecond,
MilePerHour,
MillimeterPerHour,
MillimeterPerMinute,
MillimeterPerSecond,
NanometerPerMinute,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,40 @@ namespace UnitsNet.Extensions.NumberToSpeed
{
public static class NumberToSpeedExtensions
{
#region CentimeterPerHour

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double)"/>
public static Speed CentimetersPerHour(this int value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double?)"/>
public static Speed? CentimetersPerHour(this int? value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double)"/>
public static Speed CentimetersPerHour(this long value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double?)"/>
public static Speed? CentimetersPerHour(this long? value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double)"/>
public static Speed CentimetersPerHour(this double value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double?)"/>
public static Speed? CentimetersPerHour(this double? value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double)"/>
public static Speed CentimetersPerHour(this float value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double?)"/>
public static Speed? CentimetersPerHour(this float? value) => Speed.FromCentimetersPerHour(value);

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double)"/>
public static Speed CentimetersPerHour(this decimal value) => Speed.FromCentimetersPerHour(Convert.ToDouble(value));

/// <inheritdoc cref="Speed.FromCentimetersPerHour(double?)"/>
public static Speed? CentimetersPerHour(this decimal? value) => Speed.FromCentimetersPerHour(value == null ? (double?)null : Convert.ToDouble(value.Value));

#endregion

#region CentimeterPerMinute

/// <inheritdoc cref="Speed.FromCentimetersPerMinutes(double)"/>
Expand Down Expand Up @@ -554,6 +588,40 @@ public static class NumberToSpeedExtensions

#endregion

#region MillimeterPerHour

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double)"/>
public static Speed MillimetersPerHour(this int value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double?)"/>
public static Speed? MillimetersPerHour(this int? value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double)"/>
public static Speed MillimetersPerHour(this long value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double?)"/>
public static Speed? MillimetersPerHour(this long? value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double)"/>
public static Speed MillimetersPerHour(this double value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double?)"/>
public static Speed? MillimetersPerHour(this double? value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double)"/>
public static Speed MillimetersPerHour(this float value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double?)"/>
public static Speed? MillimetersPerHour(this float? value) => Speed.FromMillimetersPerHour(value);

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double)"/>
public static Speed MillimetersPerHour(this decimal value) => Speed.FromMillimetersPerHour(Convert.ToDouble(value));

/// <inheritdoc cref="Speed.FromMillimetersPerHour(double?)"/>
public static Speed? MillimetersPerHour(this decimal? value) => Speed.FromMillimetersPerHour(value == null ? (double?)null : Convert.ToDouble(value.Value));

#endregion

#region MillimeterPerMinute

/// <inheritdoc cref="Speed.FromMillimetersPerMinutes(double)"/>
Expand Down
Loading

0 comments on commit 5321a7c

Please sign in to comment.