Skip to content

Commit 82b3556

Browse files
committed
Added US Survey Foot unit
1 parent 657fcfb commit 82b3556

File tree

8 files changed

+101
-0
lines changed

8 files changed

+101
-0
lines changed

UnitsNet.Serialization.JsonNet.Tests/UnitsNet.Serialization.JsonNet.Tests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@
6767
<Name>UnitsNet.Net35</Name>
6868
</ProjectReference>
6969
</ItemGroup>
70+
<ItemGroup>
71+
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
72+
</ItemGroup>
7073
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
7174
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
7275
Other similar extension points exist, see Microsoft.Common.targets.

UnitsNet.Tests/CustomCode/LengthTests.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2020
// THE SOFTWARE.
2121

22+
using System;
2223
using NUnit.Framework;
2324
using UnitsNet.Units;
2425

@@ -32,6 +33,8 @@ public class LengthTests : LengthTestsBase
3233

3334
protected override double FeetInOneMeter => 3.28084;
3435

36+
protected override double USSurveyFeetInOneMeter => 3.2808333333465;
37+
3538
protected override double InchesInOneMeter => 39.37007874;
3639

3740
protected override double KilometersInOneMeter => 1E-3;

UnitsNet.Tests/GeneratedCode/LengthTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ public abstract partial class LengthTestsBase
6666
protected abstract double MillimetersInOneMeter { get; }
6767
protected abstract double NanometersInOneMeter { get; }
6868
protected abstract double NauticalMilesInOneMeter { get; }
69+
protected abstract double USSurveyFeetInOneMeter { get; }
6970
protected abstract double YardsInOneMeter { get; }
7071

7172
// ReSharper disable VirtualMemberNeverOverriden.Global
@@ -82,6 +83,7 @@ public abstract partial class LengthTestsBase
8283
protected virtual double MillimetersTolerance { get { return 1e-5; } }
8384
protected virtual double NanometersTolerance { get { return 1e-5; } }
8485
protected virtual double NauticalMilesTolerance { get { return 1e-5; } }
86+
protected virtual double USSurveyFeetTolerance { get { return 1e-5; } }
8587
protected virtual double YardsTolerance { get { return 1e-5; } }
8688
// ReSharper restore VirtualMemberNeverOverriden.Global
8789

@@ -102,6 +104,7 @@ public void MeterToLengthUnits()
102104
Assert.AreEqual(MillimetersInOneMeter, meter.Millimeters, MillimetersTolerance);
103105
Assert.AreEqual(NanometersInOneMeter, meter.Nanometers, NanometersTolerance);
104106
Assert.AreEqual(NauticalMilesInOneMeter, meter.NauticalMiles, NauticalMilesTolerance);
107+
Assert.AreEqual(USSurveyFeetInOneMeter, meter.USSurveyFeet, USSurveyFeetTolerance);
105108
Assert.AreEqual(YardsInOneMeter, meter.Yards, YardsTolerance);
106109
}
107110

@@ -121,6 +124,7 @@ public void FromValueAndUnit()
121124
Assert.AreEqual(1, Length.From(1, LengthUnit.Millimeter).Millimeters, MillimetersTolerance);
122125
Assert.AreEqual(1, Length.From(1, LengthUnit.Nanometer).Nanometers, NanometersTolerance);
123126
Assert.AreEqual(1, Length.From(1, LengthUnit.NauticalMile).NauticalMiles, NauticalMilesTolerance);
127+
Assert.AreEqual(1, Length.From(1, LengthUnit.USSurveyFoot).USSurveyFeet, USSurveyFeetTolerance);
124128
Assert.AreEqual(1, Length.From(1, LengthUnit.Yard).Yards, YardsTolerance);
125129
}
126130

@@ -141,6 +145,7 @@ public void As()
141145
Assert.AreEqual(MillimetersInOneMeter, meter.As(LengthUnit.Millimeter), MillimetersTolerance);
142146
Assert.AreEqual(NanometersInOneMeter, meter.As(LengthUnit.Nanometer), NanometersTolerance);
143147
Assert.AreEqual(NauticalMilesInOneMeter, meter.As(LengthUnit.NauticalMile), NauticalMilesTolerance);
148+
Assert.AreEqual(USSurveyFeetInOneMeter, meter.As(LengthUnit.USSurveyFoot), USSurveyFeetTolerance);
144149
Assert.AreEqual(YardsInOneMeter, meter.As(LengthUnit.Yard), YardsTolerance);
145150
}
146151

@@ -161,6 +166,7 @@ public void ConversionRoundTrip()
161166
Assert.AreEqual(1, Length.FromMillimeters(meter.Millimeters).Meters, MillimetersTolerance);
162167
Assert.AreEqual(1, Length.FromNanometers(meter.Nanometers).Meters, NanometersTolerance);
163168
Assert.AreEqual(1, Length.FromNauticalMiles(meter.NauticalMiles).Meters, NauticalMilesTolerance);
169+
Assert.AreEqual(1, Length.FromUSSurveyFeet(meter.USSurveyFeet).Meters, USSurveyFeetTolerance);
164170
Assert.AreEqual(1, Length.FromYards(meter.Yards).Meters, YardsTolerance);
165171
}
166172

UnitsNet/GeneratedCode/Enums/LengthUnit.g.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public enum LengthUnit
5555
Millimeter,
5656
Nanometer,
5757
NauticalMile,
58+
USSurveyFoot,
5859
Yard,
5960
}
6061
}

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -486,6 +486,40 @@ public static class NumberToLengthExtensions
486486

487487
#endregion
488488

489+
#region USSurveyFoot
490+
491+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double)"/>
492+
public static Length USSurveyFeet(this int value) => Length.FromUSSurveyFeet(value);
493+
494+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double?)"/>
495+
public static Length? USSurveyFeet(this int? value) => Length.FromUSSurveyFeet(value);
496+
497+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double)"/>
498+
public static Length USSurveyFeet(this long value) => Length.FromUSSurveyFeet(value);
499+
500+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double?)"/>
501+
public static Length? USSurveyFeet(this long? value) => Length.FromUSSurveyFeet(value);
502+
503+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double)"/>
504+
public static Length USSurveyFeet(this double value) => Length.FromUSSurveyFeet(value);
505+
506+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double?)"/>
507+
public static Length? USSurveyFeet(this double? value) => Length.FromUSSurveyFeet(value);
508+
509+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double)"/>
510+
public static Length USSurveyFeet(this float value) => Length.FromUSSurveyFeet(value);
511+
512+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double?)"/>
513+
public static Length? USSurveyFeet(this float? value) => Length.FromUSSurveyFeet(value);
514+
515+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double)"/>
516+
public static Length USSurveyFeet(this decimal value) => Length.FromUSSurveyFeet(Convert.ToDouble(value));
517+
518+
/// <inheritdoc cref="Length.FromUSSurveyFeet(double?)"/>
519+
public static Length? USSurveyFeet(this decimal? value) => Length.FromUSSurveyFeet(value == null ? (double?)null : Convert.ToDouble(value.Value));
520+
521+
#endregion
522+
489523
#region Yard
490524

491525
/// <inheritdoc cref="Length.FromYards(double)"/>

UnitsNet/GeneratedCode/UnitClasses/Length.g.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -214,6 +214,14 @@ public double NauticalMiles
214214
get { return _meters/1852; }
215215
}
216216

217+
/// <summary>
218+
/// Get Length in USSurveyFeet.
219+
/// </summary>
220+
public double USSurveyFeet
221+
{
222+
get { return _meters/0.3048006096; }
223+
}
224+
217225
/// <summary>
218226
/// Get Length in Yards.
219227
/// </summary>
@@ -335,6 +343,14 @@ public static Length FromNauticalMiles(double nauticalmiles)
335343
return new Length(nauticalmiles*1852);
336344
}
337345

346+
/// <summary>
347+
/// Get Length from USSurveyFeet.
348+
/// </summary>
349+
public static Length FromUSSurveyFeet(double ussurveyfeet)
350+
{
351+
return new Length(ussurveyfeet*0.3048006096);
352+
}
353+
338354
/// <summary>
339355
/// Get Length from Yards.
340356
/// </summary>
@@ -539,6 +555,21 @@ public static Length FromYards(double yards)
539555
}
540556
}
541557

558+
/// <summary>
559+
/// Get nullable Length from nullable USSurveyFeet.
560+
/// </summary>
561+
public static Length? FromUSSurveyFeet(double? ussurveyfeet)
562+
{
563+
if (ussurveyfeet.HasValue)
564+
{
565+
return FromUSSurveyFeet(ussurveyfeet.Value);
566+
}
567+
else
568+
{
569+
return null;
570+
}
571+
}
572+
542573
/// <summary>
543574
/// Get nullable Length from nullable Yards.
544575
/// </summary>
@@ -592,6 +623,8 @@ public static Length From(double val, LengthUnit fromUnit)
592623
return FromNanometers(val);
593624
case LengthUnit.NauticalMile:
594625
return FromNauticalMiles(val);
626+
case LengthUnit.USSurveyFoot:
627+
return FromUSSurveyFeet(val);
595628
case LengthUnit.Yard:
596629
return FromYards(val);
597630

@@ -641,6 +674,8 @@ public static Length From(double val, LengthUnit fromUnit)
641674
return FromNanometers(value.Value);
642675
case LengthUnit.NauticalMile:
643676
return FromNauticalMiles(value.Value);
677+
case LengthUnit.USSurveyFoot:
678+
return FromUSSurveyFeet(value.Value);
644679
case LengthUnit.Yard:
645680
return FromYards(value.Value);
646681

@@ -823,6 +858,8 @@ public double As(LengthUnit unit)
823858
return Nanometers;
824859
case LengthUnit.NauticalMile:
825860
return NauticalMiles;
861+
case LengthUnit.USSurveyFoot:
862+
return USSurveyFeet;
826863
case LengthUnit.Yard:
827864
return Yards;
828865

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1152,6 +1152,11 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
11521152
new AbbreviationsForCulture("en-US", "NM"),
11531153
new AbbreviationsForCulture("ru-RU", "мил"),
11541154
}),
1155+
new CulturesForEnumValue((int) LengthUnit.USSurveyFoot,
1156+
new[]
1157+
{
1158+
new AbbreviationsForCulture("en-US", "ftUS"),
1159+
}),
11551160
new CulturesForEnumValue((int) LengthUnit.Yard,
11561161
new[]
11571162
{

UnitsNet/Scripts/UnitDefinitions/Length.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,18 @@
6969
}
7070
]
7171
},
72+
{
73+
"SingularName": "USSurveyFoot",
74+
"PluralName": "USSurveyFeet",
75+
"FromUnitToBaseFunc": "x*0.3048006096",
76+
"FromBaseToUnitFunc": "x/0.3048006096",
77+
"Localization": [
78+
{
79+
"Culture": "en-US",
80+
"Abbreviations": [ "ftUS" ]
81+
}
82+
]
83+
},
7284
{
7385
"SingularName": "Inch",
7486
"PluralName": "Inches",

0 commit comments

Comments
 (0)