Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions UnitsNet.Tests/CustomCode/SpeedTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -47,5 +47,10 @@ protected override double MilesPerHourInOneMeterPerSecond
{
get { return 2.23694; }
}

protected override double MillimetersPerSecondInOneMeterPerSecond
{
get { return 1000; }
}
}
}
6 changes: 6 additions & 0 deletions UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -41,13 +41,15 @@ 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; } }
protected virtual double KilometersPerHourTolerance { get { return 1e-5; } }
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]
Expand All @@ -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]
Expand All @@ -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]
Expand All @@ -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]
Expand All @@ -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]
Expand Down
1 change: 1 addition & 0 deletions UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@ public enum SpeedUnit
Knot,
MeterPerSecond,
MilePerHour,
MillimeterPerSecond,
}
}
20 changes: 20 additions & 0 deletions UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,14 @@ public double MilesPerHour
get { return _metersPerSecond/0.44704; }
}

/// <summary>
/// Get Speed in MillimetersPerSecond.
/// </summary>
public double MillimetersPerSecond
{
get { return _metersPerSecond/0.001; }
}

#endregion

#region Static
Expand Down Expand Up @@ -137,6 +145,14 @@ public static Speed FromMilesPerHour(double milesperhour)
return new Speed(milesperhour*0.44704);
}

/// <summary>
/// Get Speed from MillimetersPerSecond.
/// </summary>
public static Speed FromMillimetersPerSecond(double millimeterspersecond)
{
return new Speed(millimeterspersecond*0.001);
}


/// <summary>
/// Dynamically convert from value and unit enum <see cref="SpeedUnit" /> to <see cref="Speed" />.
Expand All @@ -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);
Expand Down Expand Up @@ -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);
Expand Down
5 changes: 5 additions & 0 deletions UnitsNet/GeneratedCode/UnitSystem.Default.g.cs
Original file line number Diff line number Diff line change
Expand Up @@ -1260,6 +1260,11 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
{
new AbbreviationsForCulture("en-US", "mph"),
}),
new CulturesForEnumValue((int) SpeedUnit.MillimeterPerSecond,
new[]
{
new AbbreviationsForCulture("en-US", "mm/s"),
}),
}),
new UnitLocalization(typeof (TemperatureUnit),
new[]
Expand Down
12 changes: 12 additions & 0 deletions UnitsNet/Scripts/UnitDefinitions/Speed.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down