Skip to content

Commit f45a432

Browse files
committed
Merge pull request #144 from AgileoAutomation/add-DegreePerSecond
Add Angle units DegreePerSecond with prefixes
2 parents 3f5daf4 + e6ba20a commit f45a432

File tree

6 files changed

+164
-6
lines changed

6 files changed

+164
-6
lines changed

UnitsNet.Tests/CustomCode/RotationalSpeedTests.cs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,18 @@ public class RotationalSpeedTests : RotationalSpeedTestsBase
3838

3939
protected override double NanoradiansPerSecondInOneRadianPerSecond => 1E9;
4040

41-
protected override double RevolutionsPerMinuteInOneRadianPerSecond => 60*1/(2*Math.PI);
41+
protected override double RevolutionsPerMinuteInOneRadianPerSecond => 9.54929659;
42+
43+
protected override double RevolutionsPerSecondInOneRadianPerSecond => 0.15915494;
44+
45+
protected override double DegreesPerSecondInOneRadianPerSecond => 57.29577951308;
46+
47+
protected override double MillidegreesPerSecondInOneRadianPerSecond => 57295.77951308;
48+
49+
protected override double MicrodegreesPerSecondInOneRadianPerSecond => 57295779.51308232;
50+
51+
protected override double NanodegreesPerSecondInOneRadianPerSecond => 57295779513.08232087;
4252

43-
protected override double RevolutionsPerSecondInOneRadianPerSecond => 1/(2*Math.PI);
4453

4554
[Test]
4655
public void DurationTimesRotationalSpeedEqualsAngle()

UnitsNet.Tests/GeneratedCode/RotationalSpeedTestsBase.g.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,12 @@ public abstract partial class RotationalSpeedTestsBase
3838
{
3939
protected abstract double CentiradiansPerSecondInOneRadianPerSecond { get; }
4040
protected abstract double DeciradiansPerSecondInOneRadianPerSecond { get; }
41+
protected abstract double DegreesPerSecondInOneRadianPerSecond { get; }
42+
protected abstract double MicrodegreesPerSecondInOneRadianPerSecond { get; }
4143
protected abstract double MicroradiansPerSecondInOneRadianPerSecond { get; }
44+
protected abstract double MillidegreesPerSecondInOneRadianPerSecond { get; }
4245
protected abstract double MilliradiansPerSecondInOneRadianPerSecond { get; }
46+
protected abstract double NanodegreesPerSecondInOneRadianPerSecond { get; }
4347
protected abstract double NanoradiansPerSecondInOneRadianPerSecond { get; }
4448
protected abstract double RadiansPerSecondInOneRadianPerSecond { get; }
4549
protected abstract double RevolutionsPerMinuteInOneRadianPerSecond { get; }
@@ -48,8 +52,12 @@ public abstract partial class RotationalSpeedTestsBase
4852
// ReSharper disable VirtualMemberNeverOverriden.Global
4953
protected virtual double CentiradiansPerSecondTolerance { get { return 1e-5; } }
5054
protected virtual double DeciradiansPerSecondTolerance { get { return 1e-5; } }
55+
protected virtual double DegreesPerSecondTolerance { get { return 1e-5; } }
56+
protected virtual double MicrodegreesPerSecondTolerance { get { return 1e-5; } }
5157
protected virtual double MicroradiansPerSecondTolerance { get { return 1e-5; } }
58+
protected virtual double MillidegreesPerSecondTolerance { get { return 1e-5; } }
5259
protected virtual double MilliradiansPerSecondTolerance { get { return 1e-5; } }
60+
protected virtual double NanodegreesPerSecondTolerance { get { return 1e-5; } }
5361
protected virtual double NanoradiansPerSecondTolerance { get { return 1e-5; } }
5462
protected virtual double RadiansPerSecondTolerance { get { return 1e-5; } }
5563
protected virtual double RevolutionsPerMinuteTolerance { get { return 1e-5; } }
@@ -62,8 +70,12 @@ public void RadianPerSecondToRotationalSpeedUnits()
6270
RotationalSpeed radianpersecond = RotationalSpeed.FromRadiansPerSecond(1);
6371
Assert.AreEqual(CentiradiansPerSecondInOneRadianPerSecond, radianpersecond.CentiradiansPerSecond, CentiradiansPerSecondTolerance);
6472
Assert.AreEqual(DeciradiansPerSecondInOneRadianPerSecond, radianpersecond.DeciradiansPerSecond, DeciradiansPerSecondTolerance);
73+
Assert.AreEqual(DegreesPerSecondInOneRadianPerSecond, radianpersecond.DegreesPerSecond, DegreesPerSecondTolerance);
74+
Assert.AreEqual(MicrodegreesPerSecondInOneRadianPerSecond, radianpersecond.MicrodegreesPerSecond, MicrodegreesPerSecondTolerance);
6575
Assert.AreEqual(MicroradiansPerSecondInOneRadianPerSecond, radianpersecond.MicroradiansPerSecond, MicroradiansPerSecondTolerance);
76+
Assert.AreEqual(MillidegreesPerSecondInOneRadianPerSecond, radianpersecond.MillidegreesPerSecond, MillidegreesPerSecondTolerance);
6677
Assert.AreEqual(MilliradiansPerSecondInOneRadianPerSecond, radianpersecond.MilliradiansPerSecond, MilliradiansPerSecondTolerance);
78+
Assert.AreEqual(NanodegreesPerSecondInOneRadianPerSecond, radianpersecond.NanodegreesPerSecond, NanodegreesPerSecondTolerance);
6779
Assert.AreEqual(NanoradiansPerSecondInOneRadianPerSecond, radianpersecond.NanoradiansPerSecond, NanoradiansPerSecondTolerance);
6880
Assert.AreEqual(RadiansPerSecondInOneRadianPerSecond, radianpersecond.RadiansPerSecond, RadiansPerSecondTolerance);
6981
Assert.AreEqual(RevolutionsPerMinuteInOneRadianPerSecond, radianpersecond.RevolutionsPerMinute, RevolutionsPerMinuteTolerance);
@@ -75,8 +87,12 @@ public void FromValueAndUnit()
7587
{
7688
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.CentiradianPerSecond).CentiradiansPerSecond, CentiradiansPerSecondTolerance);
7789
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.DeciradianPerSecond).DeciradiansPerSecond, DeciradiansPerSecondTolerance);
90+
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.DegreePerSecond).DegreesPerSecond, DegreesPerSecondTolerance);
91+
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.MicrodegreePerSecond).MicrodegreesPerSecond, MicrodegreesPerSecondTolerance);
7892
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.MicroradianPerSecond).MicroradiansPerSecond, MicroradiansPerSecondTolerance);
93+
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.MillidegreePerSecond).MillidegreesPerSecond, MillidegreesPerSecondTolerance);
7994
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.MilliradianPerSecond).MilliradiansPerSecond, MilliradiansPerSecondTolerance);
95+
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.NanodegreePerSecond).NanodegreesPerSecond, NanodegreesPerSecondTolerance);
8096
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.NanoradianPerSecond).NanoradiansPerSecond, NanoradiansPerSecondTolerance);
8197
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.RadianPerSecond).RadiansPerSecond, RadiansPerSecondTolerance);
8298
Assert.AreEqual(1, RotationalSpeed.From(1, RotationalSpeedUnit.RevolutionPerMinute).RevolutionsPerMinute, RevolutionsPerMinuteTolerance);
@@ -89,8 +105,12 @@ public void As()
89105
var radianpersecond = RotationalSpeed.FromRadiansPerSecond(1);
90106
Assert.AreEqual(CentiradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.CentiradianPerSecond), CentiradiansPerSecondTolerance);
91107
Assert.AreEqual(DeciradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.DeciradianPerSecond), DeciradiansPerSecondTolerance);
108+
Assert.AreEqual(DegreesPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.DegreePerSecond), DegreesPerSecondTolerance);
109+
Assert.AreEqual(MicrodegreesPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.MicrodegreePerSecond), MicrodegreesPerSecondTolerance);
92110
Assert.AreEqual(MicroradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.MicroradianPerSecond), MicroradiansPerSecondTolerance);
111+
Assert.AreEqual(MillidegreesPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.MillidegreePerSecond), MillidegreesPerSecondTolerance);
93112
Assert.AreEqual(MilliradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.MilliradianPerSecond), MilliradiansPerSecondTolerance);
113+
Assert.AreEqual(NanodegreesPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.NanodegreePerSecond), NanodegreesPerSecondTolerance);
94114
Assert.AreEqual(NanoradiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.NanoradianPerSecond), NanoradiansPerSecondTolerance);
95115
Assert.AreEqual(RadiansPerSecondInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.RadianPerSecond), RadiansPerSecondTolerance);
96116
Assert.AreEqual(RevolutionsPerMinuteInOneRadianPerSecond, radianpersecond.As(RotationalSpeedUnit.RevolutionPerMinute), RevolutionsPerMinuteTolerance);
@@ -103,8 +123,12 @@ public void ConversionRoundTrip()
103123
RotationalSpeed radianpersecond = RotationalSpeed.FromRadiansPerSecond(1);
104124
Assert.AreEqual(1, RotationalSpeed.FromCentiradiansPerSecond(radianpersecond.CentiradiansPerSecond).RadiansPerSecond, CentiradiansPerSecondTolerance);
105125
Assert.AreEqual(1, RotationalSpeed.FromDeciradiansPerSecond(radianpersecond.DeciradiansPerSecond).RadiansPerSecond, DeciradiansPerSecondTolerance);
126+
Assert.AreEqual(1, RotationalSpeed.FromDegreesPerSecond(radianpersecond.DegreesPerSecond).RadiansPerSecond, DegreesPerSecondTolerance);
127+
Assert.AreEqual(1, RotationalSpeed.FromMicrodegreesPerSecond(radianpersecond.MicrodegreesPerSecond).RadiansPerSecond, MicrodegreesPerSecondTolerance);
106128
Assert.AreEqual(1, RotationalSpeed.FromMicroradiansPerSecond(radianpersecond.MicroradiansPerSecond).RadiansPerSecond, MicroradiansPerSecondTolerance);
129+
Assert.AreEqual(1, RotationalSpeed.FromMillidegreesPerSecond(radianpersecond.MillidegreesPerSecond).RadiansPerSecond, MillidegreesPerSecondTolerance);
107130
Assert.AreEqual(1, RotationalSpeed.FromMilliradiansPerSecond(radianpersecond.MilliradiansPerSecond).RadiansPerSecond, MilliradiansPerSecondTolerance);
131+
Assert.AreEqual(1, RotationalSpeed.FromNanodegreesPerSecond(radianpersecond.NanodegreesPerSecond).RadiansPerSecond, NanodegreesPerSecondTolerance);
108132
Assert.AreEqual(1, RotationalSpeed.FromNanoradiansPerSecond(radianpersecond.NanoradiansPerSecond).RadiansPerSecond, NanoradiansPerSecondTolerance);
109133
Assert.AreEqual(1, RotationalSpeed.FromRadiansPerSecond(radianpersecond.RadiansPerSecond).RadiansPerSecond, RadiansPerSecondTolerance);
110134
Assert.AreEqual(1, RotationalSpeed.FromRevolutionsPerMinute(radianpersecond.RevolutionsPerMinute).RadiansPerSecond, RevolutionsPerMinuteTolerance);

UnitsNet/GeneratedCode/Enums/RotationalSpeedUnit.g.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,8 +27,12 @@ public enum RotationalSpeedUnit
2727
Undefined = 0,
2828
CentiradianPerSecond,
2929
DeciradianPerSecond,
30+
DegreePerSecond,
31+
MicrodegreePerSecond,
3032
MicroradianPerSecond,
33+
MillidegreePerSecond,
3134
MilliradianPerSecond,
35+
NanodegreePerSecond,
3236
NanoradianPerSecond,
3337
RadianPerSecond,
3438
RevolutionPerMinute,

UnitsNet/GeneratedCode/UnitClasses/RotationalSpeed.g.cs

Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,22 @@ 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+
81+
/// <summary>
82+
/// Get RotationalSpeed in MicrodegreesPerSecond.
83+
/// </summary>
84+
public double MicrodegreesPerSecond
85+
{
86+
get { return ((180/Math.PI)*_radiansPerSecond) / 1e-6d; }
87+
}
88+
7389
/// <summary>
7490
/// Get RotationalSpeed in MicroradiansPerSecond.
7591
/// </summary>
@@ -78,6 +94,14 @@ public double MicroradiansPerSecond
7894
get { return (_radiansPerSecond) / 1e-6d; }
7995
}
8096

97+
/// <summary>
98+
/// Get RotationalSpeed in MillidegreesPerSecond.
99+
/// </summary>
100+
public double MillidegreesPerSecond
101+
{
102+
get { return ((180/Math.PI)*_radiansPerSecond) / 1e-3d; }
103+
}
104+
81105
/// <summary>
82106
/// Get RotationalSpeed in MilliradiansPerSecond.
83107
/// </summary>
@@ -86,6 +110,14 @@ public double MilliradiansPerSecond
86110
get { return (_radiansPerSecond) / 1e-3d; }
87111
}
88112

113+
/// <summary>
114+
/// Get RotationalSpeed in NanodegreesPerSecond.
115+
/// </summary>
116+
public double NanodegreesPerSecond
117+
{
118+
get { return ((180/Math.PI)*_radiansPerSecond) / 1e-9d; }
119+
}
120+
89121
/// <summary>
90122
/// Get RotationalSpeed in NanoradiansPerSecond.
91123
/// </summary>
@@ -143,6 +175,22 @@ public static RotationalSpeed FromDeciradiansPerSecond(double deciradiansperseco
143175
return new RotationalSpeed((deciradianspersecond) * 1e-1d);
144176
}
145177

178+
/// <summary>
179+
/// Get RotationalSpeed from DegreesPerSecond.
180+
/// </summary>
181+
public static RotationalSpeed FromDegreesPerSecond(double degreespersecond)
182+
{
183+
return new RotationalSpeed((Math.PI/180)*degreespersecond);
184+
}
185+
186+
/// <summary>
187+
/// Get RotationalSpeed from MicrodegreesPerSecond.
188+
/// </summary>
189+
public static RotationalSpeed FromMicrodegreesPerSecond(double microdegreespersecond)
190+
{
191+
return new RotationalSpeed(((Math.PI/180)*microdegreespersecond) * 1e-6d);
192+
}
193+
146194
/// <summary>
147195
/// Get RotationalSpeed from MicroradiansPerSecond.
148196
/// </summary>
@@ -151,6 +199,14 @@ public static RotationalSpeed FromMicroradiansPerSecond(double microradiansperse
151199
return new RotationalSpeed((microradianspersecond) * 1e-6d);
152200
}
153201

202+
/// <summary>
203+
/// Get RotationalSpeed from MillidegreesPerSecond.
204+
/// </summary>
205+
public static RotationalSpeed FromMillidegreesPerSecond(double millidegreespersecond)
206+
{
207+
return new RotationalSpeed(((Math.PI/180)*millidegreespersecond) * 1e-3d);
208+
}
209+
154210
/// <summary>
155211
/// Get RotationalSpeed from MilliradiansPerSecond.
156212
/// </summary>
@@ -159,6 +215,14 @@ public static RotationalSpeed FromMilliradiansPerSecond(double milliradiansperse
159215
return new RotationalSpeed((milliradianspersecond) * 1e-3d);
160216
}
161217

218+
/// <summary>
219+
/// Get RotationalSpeed from NanodegreesPerSecond.
220+
/// </summary>
221+
public static RotationalSpeed FromNanodegreesPerSecond(double nanodegreespersecond)
222+
{
223+
return new RotationalSpeed(((Math.PI/180)*nanodegreespersecond) * 1e-9d);
224+
}
225+
162226
/// <summary>
163227
/// Get RotationalSpeed from NanoradiansPerSecond.
164228
/// </summary>
@@ -206,10 +270,18 @@ public static RotationalSpeed From(double value, RotationalSpeedUnit fromUnit)
206270
return FromCentiradiansPerSecond(value);
207271
case RotationalSpeedUnit.DeciradianPerSecond:
208272
return FromDeciradiansPerSecond(value);
273+
case RotationalSpeedUnit.DegreePerSecond:
274+
return FromDegreesPerSecond(value);
275+
case RotationalSpeedUnit.MicrodegreePerSecond:
276+
return FromMicrodegreesPerSecond(value);
209277
case RotationalSpeedUnit.MicroradianPerSecond:
210278
return FromMicroradiansPerSecond(value);
279+
case RotationalSpeedUnit.MillidegreePerSecond:
280+
return FromMillidegreesPerSecond(value);
211281
case RotationalSpeedUnit.MilliradianPerSecond:
212282
return FromMilliradiansPerSecond(value);
283+
case RotationalSpeedUnit.NanodegreePerSecond:
284+
return FromNanodegreesPerSecond(value);
213285
case RotationalSpeedUnit.NanoradianPerSecond:
214286
return FromNanoradiansPerSecond(value);
215287
case RotationalSpeedUnit.RadianPerSecond:
@@ -355,10 +427,18 @@ public double As(RotationalSpeedUnit unit)
355427
return CentiradiansPerSecond;
356428
case RotationalSpeedUnit.DeciradianPerSecond:
357429
return DeciradiansPerSecond;
430+
case RotationalSpeedUnit.DegreePerSecond:
431+
return DegreesPerSecond;
432+
case RotationalSpeedUnit.MicrodegreePerSecond:
433+
return MicrodegreesPerSecond;
358434
case RotationalSpeedUnit.MicroradianPerSecond:
359435
return MicroradiansPerSecond;
436+
case RotationalSpeedUnit.MillidegreePerSecond:
437+
return MillidegreesPerSecond;
360438
case RotationalSpeedUnit.MilliradianPerSecond:
361439
return MilliradiansPerSecond;
440+
case RotationalSpeedUnit.NanodegreePerSecond:
441+
return NanodegreesPerSecond;
362442
case RotationalSpeedUnit.NanoradianPerSecond:
363443
return NanoradiansPerSecond;
364444
case RotationalSpeedUnit.RadianPerSecond:

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1526,18 +1526,42 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
15261526
new AbbreviationsForCulture("en-US", "drad/s"),
15271527
new AbbreviationsForCulture("ru-RU", "dрад/с"),
15281528
}),
1529+
new CulturesForEnumValue((int) RotationalSpeedUnit.DegreePerSecond,
1530+
new[]
1531+
{
1532+
new AbbreviationsForCulture("en-US", "°/s", "deg/s"),
1533+
new AbbreviationsForCulture("ru-RU", "°/с"),
1534+
}),
1535+
new CulturesForEnumValue((int) RotationalSpeedUnit.MicrodegreePerSecond,
1536+
new[]
1537+
{
1538+
new AbbreviationsForCulture("en-US", "μ°/s"),
1539+
new AbbreviationsForCulture("ru-RU", "μ°/с"),
1540+
}),
15291541
new CulturesForEnumValue((int) RotationalSpeedUnit.MicroradianPerSecond,
15301542
new[]
15311543
{
15321544
new AbbreviationsForCulture("en-US", "μrad/s"),
15331545
new AbbreviationsForCulture("ru-RU", "μрад/с"),
15341546
}),
1547+
new CulturesForEnumValue((int) RotationalSpeedUnit.MillidegreePerSecond,
1548+
new[]
1549+
{
1550+
new AbbreviationsForCulture("en-US", "m°/s"),
1551+
new AbbreviationsForCulture("ru-RU", "m°/с"),
1552+
}),
15351553
new CulturesForEnumValue((int) RotationalSpeedUnit.MilliradianPerSecond,
15361554
new[]
15371555
{
15381556
new AbbreviationsForCulture("en-US", "mrad/s"),
15391557
new AbbreviationsForCulture("ru-RU", "mрад/с"),
15401558
}),
1559+
new CulturesForEnumValue((int) RotationalSpeedUnit.NanodegreePerSecond,
1560+
new[]
1561+
{
1562+
new AbbreviationsForCulture("en-US", "n°/s"),
1563+
new AbbreviationsForCulture("ru-RU", "n°/с"),
1564+
}),
15411565
new CulturesForEnumValue((int) RotationalSpeedUnit.NanoradianPerSecond,
15421566
new[]
15431567
{

0 commit comments

Comments
 (0)