Skip to content

Commit 93e760a

Browse files
author
tongbong
committed
Add mm/s conversion to Speed unit.
1 parent bc0d476 commit 93e760a

File tree

6 files changed

+49
-0
lines changed

6 files changed

+49
-0
lines changed

UnitsNet.Tests/CustomCode/SpeedTests.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,5 +47,10 @@ protected override double MilesPerHourInOneMeterPerSecond
4747
{
4848
get { return 2.23694; }
4949
}
50+
51+
protected override double MillimetersPerSecondInOneMeterPerSecond
52+
{
53+
get { return 1000; }
54+
}
5055
}
5156
}

UnitsNet.Tests/GeneratedCode/SpeedTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,15 @@ public abstract partial class SpeedTestsBase
4141
protected abstract double KnotsInOneMeterPerSecond { get; }
4242
protected abstract double MetersPerSecondInOneMeterPerSecond { get; }
4343
protected abstract double MilesPerHourInOneMeterPerSecond { get; }
44+
protected abstract double MillimetersPerSecondInOneMeterPerSecond { get; }
4445

4546
// ReSharper disable VirtualMemberNeverOverriden.Global
4647
protected virtual double FeetPerSecondTolerance { get { return 1e-5; } }
4748
protected virtual double KilometersPerHourTolerance { get { return 1e-5; } }
4849
protected virtual double KnotsTolerance { get { return 1e-5; } }
4950
protected virtual double MetersPerSecondTolerance { get { return 1e-5; } }
5051
protected virtual double MilesPerHourTolerance { get { return 1e-5; } }
52+
protected virtual double MillimetersPerSecondTolerance { get { return 1e-5; } }
5153
// ReSharper restore VirtualMemberNeverOverriden.Global
5254

5355
[Test]
@@ -59,6 +61,7 @@ public void MeterPerSecondToSpeedUnits()
5961
Assert.AreEqual(KnotsInOneMeterPerSecond, meterpersecond.Knots, KnotsTolerance);
6062
Assert.AreEqual(MetersPerSecondInOneMeterPerSecond, meterpersecond.MetersPerSecond, MetersPerSecondTolerance);
6163
Assert.AreEqual(MilesPerHourInOneMeterPerSecond, meterpersecond.MilesPerHour, MilesPerHourTolerance);
64+
Assert.AreEqual(MillimetersPerSecondInOneMeterPerSecond, meterpersecond.MillimetersPerSecond, MillimetersPerSecondTolerance);
6265
}
6366

6467
[Test]
@@ -69,6 +72,7 @@ public void FromValueAndUnit()
6972
Assert.AreEqual(1, Speed.From(1, SpeedUnit.Knot).Knots, KnotsTolerance);
7073
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MeterPerSecond).MetersPerSecond, MetersPerSecondTolerance);
7174
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MilePerHour).MilesPerHour, MilesPerHourTolerance);
75+
Assert.AreEqual(1, Speed.From(1, SpeedUnit.MillimeterPerSecond).MillimetersPerSecond, MillimetersPerSecondTolerance);
7276
}
7377

7478
[Test]
@@ -80,6 +84,7 @@ public void As()
8084
Assert.AreEqual(KnotsInOneMeterPerSecond, meterpersecond.As(SpeedUnit.Knot), KnotsTolerance);
8185
Assert.AreEqual(MetersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MeterPerSecond), MetersPerSecondTolerance);
8286
Assert.AreEqual(MilesPerHourInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MilePerHour), MilesPerHourTolerance);
87+
Assert.AreEqual(MillimetersPerSecondInOneMeterPerSecond, meterpersecond.As(SpeedUnit.MillimeterPerSecond), MillimetersPerSecondTolerance);
8388
}
8489

8590
[Test]
@@ -91,6 +96,7 @@ public void ConversionRoundTrip()
9196
Assert.AreEqual(1, Speed.FromKnots(meterpersecond.Knots).MetersPerSecond, KnotsTolerance);
9297
Assert.AreEqual(1, Speed.FromMetersPerSecond(meterpersecond.MetersPerSecond).MetersPerSecond, MetersPerSecondTolerance);
9398
Assert.AreEqual(1, Speed.FromMilesPerHour(meterpersecond.MilesPerHour).MetersPerSecond, MilesPerHourTolerance);
99+
Assert.AreEqual(1, Speed.FromMillimetersPerSecond(meterpersecond.MillimetersPerSecond).MetersPerSecond, MillimetersPerSecondTolerance);
94100
}
95101

96102
[Test]

UnitsNet/GeneratedCode/Enums/SpeedUnit.g.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,6 @@ public enum SpeedUnit
3030
Knot,
3131
MeterPerSecond,
3232
MilePerHour,
33+
MillimeterPerSecond,
3334
}
3435
}

UnitsNet/GeneratedCode/UnitClasses/Speed.g.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,14 @@ public double MilesPerHour
8888
get { return _metersPerSecond/0.44704; }
8989
}
9090

91+
/// <summary>
92+
/// Get Speed in MillimetersPerSecond.
93+
/// </summary>
94+
public double MillimetersPerSecond
95+
{
96+
get { return _metersPerSecond/0.001; }
97+
}
98+
9199
#endregion
92100

93101
#region Static
@@ -137,6 +145,14 @@ public static Speed FromMilesPerHour(double milesperhour)
137145
return new Speed(milesperhour*0.44704);
138146
}
139147

148+
/// <summary>
149+
/// Get Speed from MillimetersPerSecond.
150+
/// </summary>
151+
public static Speed FromMillimetersPerSecond(double millimeterspersecond)
152+
{
153+
return new Speed(millimeterspersecond*0.001);
154+
}
155+
140156

141157
/// <summary>
142158
/// Dynamically convert from value and unit enum <see cref="SpeedUnit" /> to <see cref="Speed" />.
@@ -158,6 +174,8 @@ public static Speed From(double value, SpeedUnit fromUnit)
158174
return FromMetersPerSecond(value);
159175
case SpeedUnit.MilePerHour:
160176
return FromMilesPerHour(value);
177+
case SpeedUnit.MillimeterPerSecond:
178+
return FromMillimetersPerSecond(value);
161179

162180
default:
163181
throw new NotImplementedException("fromUnit: " + fromUnit);
@@ -301,6 +319,8 @@ public double As(SpeedUnit unit)
301319
return MetersPerSecond;
302320
case SpeedUnit.MilePerHour:
303321
return MilesPerHour;
322+
case SpeedUnit.MillimeterPerSecond:
323+
return MillimetersPerSecond;
304324

305325
default:
306326
throw new NotImplementedException("unit: " + unit);

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1260,6 +1260,11 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
12601260
{
12611261
new AbbreviationsForCulture("en-US", "mph"),
12621262
}),
1263+
new CulturesForEnumValue((int) SpeedUnit.MillimeterPerSecond,
1264+
new[]
1265+
{
1266+
new AbbreviationsForCulture("en-US", "mm/s"),
1267+
}),
12631268
}),
12641269
new UnitLocalization(typeof (TemperatureUnit),
12651270
new[]

UnitsNet/Scripts/UnitDefinitions/Speed.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@
1515
}
1616
]
1717
},
18+
{
19+
"SingularName": "MillimeterPerSecond",
20+
"PluralName": "MillimetersPerSecond",
21+
"FromUnitToBaseFunc": "x*0.001",
22+
"FromBaseToUnitFunc": "x/0.001",
23+
"Localization": [
24+
{
25+
"Culture": "en-US",
26+
"Abbreviations": ["mm/s"]
27+
}
28+
]
29+
},
1830
{
1931
"SingularName": "FootPerSecond",
2032
"PluralName": "FeetPerSecond",

0 commit comments

Comments
 (0)