Skip to content

Commit d65d5bc

Browse files
author
tongbong
committed
Add degree per second unit
1 parent b5c5cf9 commit d65d5bc

File tree

6 files changed

+55
-4
lines changed

6 files changed

+55
-4
lines changed

UnitsNet.Tests/CustomCode/RotationalSpeedTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public class RotationalSpeedTests : RotationalSpeedTestsBase
4242

4343
protected override double RevolutionsPerSecondInOneRadianPerSecond => 1/(2*Math.PI);
4444

45+
protected override double DegreesPerSecondInOneRadianPerSecond => (180 / Math.PI) * 1;
46+
4547
[Test]
4648
public void DurationTimesRotationalSpeedEqualsAngle()
4749
{

UnitsNet.Tests/GeneratedCode/RotationalSpeedTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ public abstract partial class RotationalSpeedTestsBase
3838
{
3939
protected abstract double CentiradiansPerSecondInOneRadianPerSecond { get; }
4040
protected abstract double DeciradiansPerSecondInOneRadianPerSecond { get; }
41+
protected abstract double DegreesPerSecondInOneRadianPerSecond { get; }
4142
protected abstract double MicroradiansPerSecondInOneRadianPerSecond { get; }
4243
protected abstract double MilliradiansPerSecondInOneRadianPerSecond { get; }
4344
protected abstract double NanoradiansPerSecondInOneRadianPerSecond { get; }
@@ -48,6 +49,7 @@ public abstract partial class RotationalSpeedTestsBase
4849
// ReSharper disable VirtualMemberNeverOverriden.Global
4950
protected virtual double CentiradiansPerSecondTolerance { get { return 1e-5; } }
5051
protected virtual double DeciradiansPerSecondTolerance { get { return 1e-5; } }
52+
protected virtual double DegreesPerSecondTolerance { get { return 1e-5; } }
5153
protected virtual double MicroradiansPerSecondTolerance { get { return 1e-5; } }
5254
protected virtual double MilliradiansPerSecondTolerance { get { return 1e-5; } }
5355
protected virtual double NanoradiansPerSecondTolerance { get { return 1e-5; } }
@@ -62,6 +64,7 @@ public void RadianPerSecondToRotationalSpeedUnits()
6264
RotationalSpeed radianpersecond = RotationalSpeed.FromRadiansPerSecond(1);
6365
Assert.AreEqual(CentiradiansPerSecondInOneRadianPerSecond, radianpersecond.CentiradiansPerSecond, CentiradiansPerSecondTolerance);
6466
Assert.AreEqual(DeciradiansPerSecondInOneRadianPerSecond, radianpersecond.DeciradiansPerSecond, DeciradiansPerSecondTolerance);
67+
Assert.AreEqual(DegreesPerSecondInOneRadianPerSecond, radianpersecond.DegreesPerSecond, DegreesPerSecondTolerance);
6568
Assert.AreEqual(MicroradiansPerSecondInOneRadianPerSecond, radianpersecond.MicroradiansPerSecond, MicroradiansPerSecondTolerance);
6669
Assert.AreEqual(MilliradiansPerSecondInOneRadianPerSecond, radianpersecond.MilliradiansPerSecond, MilliradiansPerSecondTolerance);
6770
Assert.AreEqual(NanoradiansPerSecondInOneRadianPerSecond, radianpersecond.NanoradiansPerSecond, NanoradiansPerSecondTolerance);
@@ -75,6 +78,7 @@ public void FromValueAndUnit()
7578
{
7679
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.CentiradianPerSecond).CentiradiansPerSecond, CentiradiansPerSecondTolerance);
7780
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.DeciradianPerSecond).DeciradiansPerSecond, DeciradiansPerSecondTolerance);
81+
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.DegreePerSecond).DegreesPerSecond, DegreesPerSecondTolerance);
7882
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.MicroradianPerSecond).MicroradiansPerSecond, MicroradiansPerSecondTolerance);
7983
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.MilliradianPerSecond).MilliradiansPerSecond, MilliradiansPerSecondTolerance);
8084
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.NanoradianPerSecond).NanoradiansPerSecond, NanoradiansPerSecondTolerance);
@@ -89,6 +93,7 @@ public void As()
8993
var radianpersecond = RotationalSpeed.FromRadiansPerSecond(1);
9094
Assert.AreEqual(CentiradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.CentiradianPerSecond), CentiradiansPerSecondTolerance);
9195
Assert.AreEqual(DeciradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.DeciradianPerSecond), DeciradiansPerSecondTolerance);
96+
Assert.AreEqual(DegreesPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.DegreePerSecond), DegreesPerSecondTolerance);
9297
Assert.AreEqual(MicroradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.MicroradianPerSecond), MicroradiansPerSecondTolerance);
9398
Assert.AreEqual(MilliradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.MilliradianPerSecond), MilliradiansPerSecondTolerance);
9499
Assert.AreEqual(NanoradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.NanoradianPerSecond), NanoradiansPerSecondTolerance);
@@ -103,6 +108,7 @@ public void ConversionRoundTrip()
103108
RotationalSpeed radianpersecond = RotationalSpeed.FromRadiansPerSecond(1);
104109
Assert.AreEqual(1, RotationalSpeed.FromCentiradiansPerSecond(radianpersecond.CentiradiansPerSecond).RadiansPerSecond, CentiradiansPerSecondTolerance);
105110
Assert.AreEqual(1, RotationalSpeed.FromDeciradiansPerSecond(radianpersecond.DeciradiansPerSecond).RadiansPerSecond, DeciradiansPerSecondTolerance);
111+
Assert.AreEqual(1, RotationalSpeed.FromDegreesPerSecond(radianpersecond.DegreesPerSecond).RadiansPerSecond, DegreesPerSecondTolerance);
106112
Assert.AreEqual(1, RotationalSpeed.FromMicroradiansPerSecond(radianpersecond.MicroradiansPerSecond).RadiansPerSecond, MicroradiansPerSecondTolerance);
107113
Assert.AreEqual(1, RotationalSpeed.FromMilliradiansPerSecond(radianpersecond.MilliradiansPerSecond).RadiansPerSecond, MilliradiansPerSecondTolerance);
108114
Assert.AreEqual(1, RotationalSpeed.FromNanoradiansPerSecond(radianpersecond.NanoradiansPerSecond).RadiansPerSecond, NanoradiansPerSecondTolerance);

UnitsNet/GeneratedCode/Enums/RotationalSpeedUnit.g.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ public enum RotationalSpeedUnit
2727
Undefined = 0,
2828
CentiradianPerSecond,
2929
DeciradianPerSecond,
30+
DegreePerSecond,
3031
MicroradianPerSecond,
3132
MilliradianPerSecond,
3233
NanoradianPerSecond,

UnitsNet/GeneratedCode/UnitClasses/RotationalSpeed.g.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,14 @@ public double DeciradiansPerSecond
7070
get { return (_radiansPerSecond) / 1e-1d; }
7171
}
7272

73+
/// <summary>
74+
/// Get RotationalSpeed in DegreesPerSecond.
75+
/// </summary>
76+
public double DegreesPerSecond
77+
{
78+
get { return (180/Math.PI)*_radiansPerSecond; }
79+
}
80+
7381
/// <summary>
7482
/// Get RotationalSpeed in MicroradiansPerSecond.
7583
/// </summary>
@@ -143,6 +151,14 @@ public static RotationalSpeed FromDeciradiansPerSecond(double deciradiansperseco
143151
return new RotationalSpeed((deciradianspersecond) * 1e-1d);
144152
}
145153

154+
/// <summary>
155+
/// Get RotationalSpeed from DegreesPerSecond.
156+
/// </summary>
157+
public static RotationalSpeed FromDegreesPerSecond(double degreespersecond)
158+
{
159+
return new RotationalSpeed((Math.PI/180)*degreespersecond);
160+
}
161+
146162
/// <summary>
147163
/// Get RotationalSpeed from MicroradiansPerSecond.
148164
/// </summary>
@@ -206,6 +222,8 @@ public static RotationalSpeed From(double value, RotationalSpeedUnit fromUnit)
206222
return FromCentiradiansPerSecond(value);
207223
case RotationalSpeedUnit.DeciradianPerSecond:
208224
return FromDeciradiansPerSecond(value);
225+
case RotationalSpeedUnit.DegreePerSecond:
226+
return FromDegreesPerSecond(value);
209227
case RotationalSpeedUnit.MicroradianPerSecond:
210228
return FromMicroradiansPerSecond(value);
211229
case RotationalSpeedUnit.MilliradianPerSecond:
@@ -355,6 +373,8 @@ public double As(RotationalSpeedUnit unit)
355373
return CentiradiansPerSecond;
356374
case RotationalSpeedUnit.DeciradianPerSecond:
357375
return DeciradiansPerSecond;
376+
case RotationalSpeedUnit.DegreePerSecond:
377+
return DegreesPerSecond;
358378
case RotationalSpeedUnit.MicroradianPerSecond:
359379
return MicroradiansPerSecond;
360380
case RotationalSpeedUnit.MilliradianPerSecond:

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1478,6 +1478,12 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
14781478
new AbbreviationsForCulture("en-US", "drad/s"),
14791479
new AbbreviationsForCulture("ru-RU", "dрад/с"),
14801480
}),
1481+
new CulturesForEnumValue((int) RotationalSpeedUnit.DegreePerSecond,
1482+
new[]
1483+
{
1484+
new AbbreviationsForCulture("en-US", "r/s"),
1485+
new AbbreviationsForCulture("ru-RU", "°/с"),
1486+
}),
14811487
new CulturesForEnumValue((int) RotationalSpeedUnit.MicroradianPerSecond,
14821488
new[]
14831489
{

UnitsNet/Scripts/UnitDefinitions/RotationalSpeed.json

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
2-
"Name": "RotationalSpeed",
3-
"BaseUnit": "RadianPerSecond",
4-
"XmlDoc": "Rotational speed (sometimes called speed of revolution) is the number of complete rotations, revolutions, cycles, or turns per time unit. Rotational speed is a cyclic frequency, measured in radians per second or in hertz in the SI System by scientists, or in revolutions per minute (rpm or min-1) or revolutions per second in everyday life. The symbol for rotational speed is ω (the Greek lowercase letter \"omega\").",
5-
"Units": [
2+
"Name": "RotationalSpeed",
3+
"BaseUnit": "RadianPerSecond",
4+
"XmlDoc": "Rotational speed (sometimes called speed of revolution) is the number of complete rotations, revolutions, cycles, or turns per time unit. Rotational speed is a cyclic frequency, measured in radians per second or in hertz in the SI System by scientists, or in revolutions per minute (rpm or min-1) or revolutions per second in everyday life. The symbol for rotational speed is ω (the Greek lowercase letter \"omega\").",
5+
"Units": [
66
{
77
"SingularName": "RadianPerSecond",
88
"PluralName": "RadiansPerSecond",
@@ -20,6 +20,22 @@
2020
}
2121
]
2222
},
23+
{
24+
"SingularName": "DegreePerSecond",
25+
"PluralName": "DegreesPerSecond",
26+
"FromUnitToBaseFunc": "(Math.PI/180)*x",
27+
"FromBaseToUnitFunc": "(180/Math.PI)*x",
28+
"Localization": [
29+
{
30+
"Culture": "en-US",
31+
"Abbreviations": [ "r/s" ]
32+
},
33+
{
34+
"Culture": "ru-RU",
35+
"Abbreviations": [ "°/с" ]
36+
}
37+
]
38+
},
2339
{
2440
"SingularName": "RevolutionPerSecond",
2541
"PluralName": "RevolutionsPerSecond",

0 commit comments

Comments
 (0)