Skip to content

Commit 280e45e

Browse files
DrDroopangularsen
authored andcommitted
Add acceleration units g, ft/s² and in/s² (#333)
* Acceleration in gs, in/s^2 and ft/s^2 have been added. * AccelerationUnit * Updated values to preserve precision.
1 parent 9bafc73 commit 280e45e

File tree

7 files changed

+338
-17
lines changed

7 files changed

+338
-17
lines changed

UnitsNet.Tests/CustomCode/AccelerationTests.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,5 +36,11 @@ public class AccelerationTests : AccelerationTestsBase
3636
protected override double MicrometerPerSecondSquaredInOneMeterPerSecondSquared => 1E6;
3737

3838
protected override double NanometerPerSecondSquaredInOneMeterPerSecondSquared => 1E9;
39+
40+
protected override double StandardGravityInOneMeterPerSecondSquared => 0.1019727;
41+
42+
protected override double InchesPerSecondSquaredInOneMeterPerSecondSquared => 39.3700787;
43+
44+
protected override double FeetPerSecondSquaredInOneMeterPerSecondSquared => 3.28084;
3945
}
4046
}

UnitsNet.Tests/GeneratedCode/AccelerationTestsBase.g.cs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,26 @@ public abstract partial class AccelerationTestsBase
5454
{
5555
protected abstract double CentimeterPerSecondSquaredInOneMeterPerSecondSquared { get; }
5656
protected abstract double DecimeterPerSecondSquaredInOneMeterPerSecondSquared { get; }
57+
protected abstract double FeetPerSecondSquaredInOneMeterPerSecondSquared { get; }
58+
protected abstract double InchesPerSecondSquaredInOneMeterPerSecondSquared { get; }
5759
protected abstract double KilometerPerSecondSquaredInOneMeterPerSecondSquared { get; }
5860
protected abstract double MeterPerSecondSquaredInOneMeterPerSecondSquared { get; }
5961
protected abstract double MicrometerPerSecondSquaredInOneMeterPerSecondSquared { get; }
6062
protected abstract double MillimeterPerSecondSquaredInOneMeterPerSecondSquared { get; }
6163
protected abstract double NanometerPerSecondSquaredInOneMeterPerSecondSquared { get; }
64+
protected abstract double StandardGravityInOneMeterPerSecondSquared { get; }
6265

6366
// ReSharper disable VirtualMemberNeverOverriden.Global
6467
protected virtual double CentimeterPerSecondSquaredTolerance { get { return 1e-5; } }
6568
protected virtual double DecimeterPerSecondSquaredTolerance { get { return 1e-5; } }
69+
protected virtual double FeetPerSecondSquaredTolerance { get { return 1e-5; } }
70+
protected virtual double InchesPerSecondSquaredTolerance { get { return 1e-5; } }
6671
protected virtual double KilometerPerSecondSquaredTolerance { get { return 1e-5; } }
6772
protected virtual double MeterPerSecondSquaredTolerance { get { return 1e-5; } }
6873
protected virtual double MicrometerPerSecondSquaredTolerance { get { return 1e-5; } }
6974
protected virtual double MillimeterPerSecondSquaredTolerance { get { return 1e-5; } }
7075
protected virtual double NanometerPerSecondSquaredTolerance { get { return 1e-5; } }
76+
protected virtual double StandardGravityTolerance { get { return 1e-5; } }
7177
// ReSharper restore VirtualMemberNeverOverriden.Global
7278

7379
[Fact]
@@ -76,23 +82,29 @@ public void MeterPerSecondSquaredToAccelerationUnits()
7682
Acceleration meterpersecondsquared = Acceleration.FromMeterPerSecondSquared(1);
7783
AssertEx.EqualTolerance(CentimeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.CentimeterPerSecondSquared, CentimeterPerSecondSquaredTolerance);
7884
AssertEx.EqualTolerance(DecimeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.DecimeterPerSecondSquared, DecimeterPerSecondSquaredTolerance);
85+
AssertEx.EqualTolerance(FeetPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.FeetPerSecondSquared, FeetPerSecondSquaredTolerance);
86+
AssertEx.EqualTolerance(InchesPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.InchesPerSecondSquared, InchesPerSecondSquaredTolerance);
7987
AssertEx.EqualTolerance(KilometerPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.KilometerPerSecondSquared, KilometerPerSecondSquaredTolerance);
8088
AssertEx.EqualTolerance(MeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.MeterPerSecondSquared, MeterPerSecondSquaredTolerance);
8189
AssertEx.EqualTolerance(MicrometerPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.MicrometerPerSecondSquared, MicrometerPerSecondSquaredTolerance);
8290
AssertEx.EqualTolerance(MillimeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.MillimeterPerSecondSquared, MillimeterPerSecondSquaredTolerance);
8391
AssertEx.EqualTolerance(NanometerPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.NanometerPerSecondSquared, NanometerPerSecondSquaredTolerance);
92+
AssertEx.EqualTolerance(StandardGravityInOneMeterPerSecondSquared, meterpersecondsquared.StandardGravity, StandardGravityTolerance);
8493
}
8594

8695
[Fact]
8796
public void FromValueAndUnit()
8897
{
8998
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.CentimeterPerSecondSquared).CentimeterPerSecondSquared, CentimeterPerSecondSquaredTolerance);
9099
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.DecimeterPerSecondSquared).DecimeterPerSecondSquared, DecimeterPerSecondSquaredTolerance);
100+
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.FootPerSecondSquared).FeetPerSecondSquared, FeetPerSecondSquaredTolerance);
101+
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.InchPerSecondSquared).InchesPerSecondSquared, InchesPerSecondSquaredTolerance);
91102
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.KilometerPerSecondSquared).KilometerPerSecondSquared, KilometerPerSecondSquaredTolerance);
92103
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.MeterPerSecondSquared).MeterPerSecondSquared, MeterPerSecondSquaredTolerance);
93104
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.MicrometerPerSecondSquared).MicrometerPerSecondSquared, MicrometerPerSecondSquaredTolerance);
94105
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.MillimeterPerSecondSquared).MillimeterPerSecondSquared, MillimeterPerSecondSquaredTolerance);
95106
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.NanometerPerSecondSquared).NanometerPerSecondSquared, NanometerPerSecondSquaredTolerance);
107+
AssertEx.EqualTolerance(1, Acceleration.From(1, AccelerationUnit.StandardGravity).StandardGravity, StandardGravityTolerance);
96108
}
97109

98110
[Fact]
@@ -101,11 +113,14 @@ public void As()
101113
var meterpersecondsquared = Acceleration.FromMeterPerSecondSquared(1);
102114
AssertEx.EqualTolerance(CentimeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.CentimeterPerSecondSquared), CentimeterPerSecondSquaredTolerance);
103115
AssertEx.EqualTolerance(DecimeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.DecimeterPerSecondSquared), DecimeterPerSecondSquaredTolerance);
116+
AssertEx.EqualTolerance(FeetPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.FootPerSecondSquared), FeetPerSecondSquaredTolerance);
117+
AssertEx.EqualTolerance(InchesPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.InchPerSecondSquared), InchesPerSecondSquaredTolerance);
104118
AssertEx.EqualTolerance(KilometerPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.KilometerPerSecondSquared), KilometerPerSecondSquaredTolerance);
105119
AssertEx.EqualTolerance(MeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.MeterPerSecondSquared), MeterPerSecondSquaredTolerance);
106120
AssertEx.EqualTolerance(MicrometerPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.MicrometerPerSecondSquared), MicrometerPerSecondSquaredTolerance);
107121
AssertEx.EqualTolerance(MillimeterPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.MillimeterPerSecondSquared), MillimeterPerSecondSquaredTolerance);
108122
AssertEx.EqualTolerance(NanometerPerSecondSquaredInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.NanometerPerSecondSquared), NanometerPerSecondSquaredTolerance);
123+
AssertEx.EqualTolerance(StandardGravityInOneMeterPerSecondSquared, meterpersecondsquared.As(AccelerationUnit.StandardGravity), StandardGravityTolerance);
109124
}
110125

111126
[Fact]
@@ -114,11 +129,14 @@ public void ConversionRoundTrip()
114129
Acceleration meterpersecondsquared = Acceleration.FromMeterPerSecondSquared(1);
115130
AssertEx.EqualTolerance(1, Acceleration.FromCentimeterPerSecondSquared(meterpersecondsquared.CentimeterPerSecondSquared).MeterPerSecondSquared, CentimeterPerSecondSquaredTolerance);
116131
AssertEx.EqualTolerance(1, Acceleration.FromDecimeterPerSecondSquared(meterpersecondsquared.DecimeterPerSecondSquared).MeterPerSecondSquared, DecimeterPerSecondSquaredTolerance);
132+
AssertEx.EqualTolerance(1, Acceleration.FromFeetPerSecondSquared(meterpersecondsquared.FeetPerSecondSquared).MeterPerSecondSquared, FeetPerSecondSquaredTolerance);
133+
AssertEx.EqualTolerance(1, Acceleration.FromInchesPerSecondSquared(meterpersecondsquared.InchesPerSecondSquared).MeterPerSecondSquared, InchesPerSecondSquaredTolerance);
117134
AssertEx.EqualTolerance(1, Acceleration.FromKilometerPerSecondSquared(meterpersecondsquared.KilometerPerSecondSquared).MeterPerSecondSquared, KilometerPerSecondSquaredTolerance);
118135
AssertEx.EqualTolerance(1, Acceleration.FromMeterPerSecondSquared(meterpersecondsquared.MeterPerSecondSquared).MeterPerSecondSquared, MeterPerSecondSquaredTolerance);
119136
AssertEx.EqualTolerance(1, Acceleration.FromMicrometerPerSecondSquared(meterpersecondsquared.MicrometerPerSecondSquared).MeterPerSecondSquared, MicrometerPerSecondSquaredTolerance);
120137
AssertEx.EqualTolerance(1, Acceleration.FromMillimeterPerSecondSquared(meterpersecondsquared.MillimeterPerSecondSquared).MeterPerSecondSquared, MillimeterPerSecondSquaredTolerance);
121138
AssertEx.EqualTolerance(1, Acceleration.FromNanometerPerSecondSquared(meterpersecondsquared.NanometerPerSecondSquared).MeterPerSecondSquared, NanometerPerSecondSquaredTolerance);
139+
AssertEx.EqualTolerance(1, Acceleration.FromStandardGravity(meterpersecondsquared.StandardGravity).MeterPerSecondSquared, StandardGravityTolerance);
122140
}
123141

124142
[Fact]

UnitsNet/GeneratedCode/Extensions/Number/NumberToAccelerationExtensions.g.cs

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,74 @@ public static class NumberToAccelerationExtensions
112112

113113
#endregion
114114

115+
#region FootPerSecondSquared
116+
117+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double)"/>
118+
public static Acceleration FeetPerSecondSquared(this int value) => Acceleration.FromFeetPerSecondSquared(value);
119+
120+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double?)"/>
121+
public static Acceleration? FeetPerSecondSquared(this int? value) => Acceleration.FromFeetPerSecondSquared(value);
122+
123+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double)"/>
124+
public static Acceleration FeetPerSecondSquared(this long value) => Acceleration.FromFeetPerSecondSquared(value);
125+
126+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double?)"/>
127+
public static Acceleration? FeetPerSecondSquared(this long? value) => Acceleration.FromFeetPerSecondSquared(value);
128+
129+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double)"/>
130+
public static Acceleration FeetPerSecondSquared(this double value) => Acceleration.FromFeetPerSecondSquared(value);
131+
132+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double?)"/>
133+
public static Acceleration? FeetPerSecondSquared(this double? value) => Acceleration.FromFeetPerSecondSquared(value);
134+
135+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double)"/>
136+
public static Acceleration FeetPerSecondSquared(this float value) => Acceleration.FromFeetPerSecondSquared(value);
137+
138+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double?)"/>
139+
public static Acceleration? FeetPerSecondSquared(this float? value) => Acceleration.FromFeetPerSecondSquared(value);
140+
141+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double)"/>
142+
public static Acceleration FeetPerSecondSquared(this decimal value) => Acceleration.FromFeetPerSecondSquared(Convert.ToDouble(value));
143+
144+
/// <inheritdoc cref="Acceleration.FromFeetPerSecondSquared(double?)"/>
145+
public static Acceleration? FeetPerSecondSquared(this decimal? value) => Acceleration.FromFeetPerSecondSquared(value == null ? (double?)null : Convert.ToDouble(value.Value));
146+
147+
#endregion
148+
149+
#region InchPerSecondSquared
150+
151+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double)"/>
152+
public static Acceleration InchesPerSecondSquared(this int value) => Acceleration.FromInchesPerSecondSquared(value);
153+
154+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double?)"/>
155+
public static Acceleration? InchesPerSecondSquared(this int? value) => Acceleration.FromInchesPerSecondSquared(value);
156+
157+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double)"/>
158+
public static Acceleration InchesPerSecondSquared(this long value) => Acceleration.FromInchesPerSecondSquared(value);
159+
160+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double?)"/>
161+
public static Acceleration? InchesPerSecondSquared(this long? value) => Acceleration.FromInchesPerSecondSquared(value);
162+
163+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double)"/>
164+
public static Acceleration InchesPerSecondSquared(this double value) => Acceleration.FromInchesPerSecondSquared(value);
165+
166+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double?)"/>
167+
public static Acceleration? InchesPerSecondSquared(this double? value) => Acceleration.FromInchesPerSecondSquared(value);
168+
169+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double)"/>
170+
public static Acceleration InchesPerSecondSquared(this float value) => Acceleration.FromInchesPerSecondSquared(value);
171+
172+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double?)"/>
173+
public static Acceleration? InchesPerSecondSquared(this float? value) => Acceleration.FromInchesPerSecondSquared(value);
174+
175+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double)"/>
176+
public static Acceleration InchesPerSecondSquared(this decimal value) => Acceleration.FromInchesPerSecondSquared(Convert.ToDouble(value));
177+
178+
/// <inheritdoc cref="Acceleration.FromInchesPerSecondSquared(double?)"/>
179+
public static Acceleration? InchesPerSecondSquared(this decimal? value) => Acceleration.FromInchesPerSecondSquared(value == null ? (double?)null : Convert.ToDouble(value.Value));
180+
181+
#endregion
182+
115183
#region KilometerPerSecondSquared
116184

117185
/// <inheritdoc cref="Acceleration.FromKilometerPerSecondSquared(double)"/>
@@ -282,6 +350,40 @@ public static class NumberToAccelerationExtensions
282350

283351
#endregion
284352

353+
#region StandardGravity
354+
355+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double)"/>
356+
public static Acceleration StandardGravity(this int value) => Acceleration.FromStandardGravity(value);
357+
358+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double?)"/>
359+
public static Acceleration? StandardGravity(this int? value) => Acceleration.FromStandardGravity(value);
360+
361+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double)"/>
362+
public static Acceleration StandardGravity(this long value) => Acceleration.FromStandardGravity(value);
363+
364+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double?)"/>
365+
public static Acceleration? StandardGravity(this long? value) => Acceleration.FromStandardGravity(value);
366+
367+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double)"/>
368+
public static Acceleration StandardGravity(this double value) => Acceleration.FromStandardGravity(value);
369+
370+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double?)"/>
371+
public static Acceleration? StandardGravity(this double? value) => Acceleration.FromStandardGravity(value);
372+
373+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double)"/>
374+
public static Acceleration StandardGravity(this float value) => Acceleration.FromStandardGravity(value);
375+
376+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double?)"/>
377+
public static Acceleration? StandardGravity(this float? value) => Acceleration.FromStandardGravity(value);
378+
379+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double)"/>
380+
public static Acceleration StandardGravity(this decimal value) => Acceleration.FromStandardGravity(Convert.ToDouble(value));
381+
382+
/// <inheritdoc cref="Acceleration.FromStandardGravity(double?)"/>
383+
public static Acceleration? StandardGravity(this decimal? value) => Acceleration.FromStandardGravity(value == null ? (double?)null : Convert.ToDouble(value.Value));
384+
385+
#endregion
386+
285387
}
286388
}
287389
#endif

0 commit comments

Comments
 (0)