Skip to content

Commit 06b493f

Browse files
gojanpaoloangularsen
authored andcommitted
Add Area UsSurveySquareFeet (#398)
1 parent dec7fc8 commit 06b493f

File tree

7 files changed

+107
-0
lines changed

7 files changed

+107
-0
lines changed

UnitsNet.Tests/CustomCode/AreaTests.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,8 @@ public class AreaTests : AreaTestsBase
5050

5151
protected override double SquareYardsInOneSquareMeter => 1.19599;
5252

53+
protected override double UsSurveySquareFeetInOneSquareMeter => 10.76386736111121;
54+
5355
[Fact]
5456
public void AreaDividedByLengthEqualsLength()
5557
{

UnitsNet.Tests/GeneratedCode/AreaTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public abstract partial class AreaTestsBase
6464
protected abstract double SquareMilesInOneSquareMeter { get; }
6565
protected abstract double SquareMillimetersInOneSquareMeter { get; }
6666
protected abstract double SquareYardsInOneSquareMeter { get; }
67+
protected abstract double UsSurveySquareFeetInOneSquareMeter { get; }
6768

6869
// ReSharper disable VirtualMemberNeverOverriden.Global
6970
protected virtual double AcresTolerance { get { return 1e-5; } }
@@ -78,6 +79,7 @@ public abstract partial class AreaTestsBase
7879
protected virtual double SquareMilesTolerance { get { return 1e-5; } }
7980
protected virtual double SquareMillimetersTolerance { get { return 1e-5; } }
8081
protected virtual double SquareYardsTolerance { get { return 1e-5; } }
82+
protected virtual double UsSurveySquareFeetTolerance { get { return 1e-5; } }
8183
// ReSharper restore VirtualMemberNeverOverriden.Global
8284

8385
[Fact]
@@ -96,6 +98,7 @@ public void SquareMeterToAreaUnits()
9698
AssertEx.EqualTolerance(SquareMilesInOneSquareMeter, squaremeter.SquareMiles, SquareMilesTolerance);
9799
AssertEx.EqualTolerance(SquareMillimetersInOneSquareMeter, squaremeter.SquareMillimeters, SquareMillimetersTolerance);
98100
AssertEx.EqualTolerance(SquareYardsInOneSquareMeter, squaremeter.SquareYards, SquareYardsTolerance);
101+
AssertEx.EqualTolerance(UsSurveySquareFeetInOneSquareMeter, squaremeter.UsSurveySquareFeet, UsSurveySquareFeetTolerance);
99102
}
100103

101104
[Fact]
@@ -113,6 +116,7 @@ public void FromValueAndUnit()
113116
AssertEx.EqualTolerance(1, Area.From(1, AreaUnit.SquareMile).SquareMiles, SquareMilesTolerance);
114117
AssertEx.EqualTolerance(1, Area.From(1, AreaUnit.SquareMillimeter).SquareMillimeters, SquareMillimetersTolerance);
115118
AssertEx.EqualTolerance(1, Area.From(1, AreaUnit.SquareYard).SquareYards, SquareYardsTolerance);
119+
AssertEx.EqualTolerance(1, Area.From(1, AreaUnit.UsSurveySquareFoot).UsSurveySquareFeet, UsSurveySquareFeetTolerance);
116120
}
117121

118122
[Fact]
@@ -131,6 +135,7 @@ public void As()
131135
AssertEx.EqualTolerance(SquareMilesInOneSquareMeter, squaremeter.As(AreaUnit.SquareMile), SquareMilesTolerance);
132136
AssertEx.EqualTolerance(SquareMillimetersInOneSquareMeter, squaremeter.As(AreaUnit.SquareMillimeter), SquareMillimetersTolerance);
133137
AssertEx.EqualTolerance(SquareYardsInOneSquareMeter, squaremeter.As(AreaUnit.SquareYard), SquareYardsTolerance);
138+
AssertEx.EqualTolerance(UsSurveySquareFeetInOneSquareMeter, squaremeter.As(AreaUnit.UsSurveySquareFoot), UsSurveySquareFeetTolerance);
134139
}
135140

136141
[Fact]
@@ -149,6 +154,7 @@ public void ConversionRoundTrip()
149154
AssertEx.EqualTolerance(1, Area.FromSquareMiles(squaremeter.SquareMiles).SquareMeters, SquareMilesTolerance);
150155
AssertEx.EqualTolerance(1, Area.FromSquareMillimeters(squaremeter.SquareMillimeters).SquareMeters, SquareMillimetersTolerance);
151156
AssertEx.EqualTolerance(1, Area.FromSquareYards(squaremeter.SquareYards).SquareMeters, SquareYardsTolerance);
157+
AssertEx.EqualTolerance(1, Area.FromUsSurveySquareFeet(squaremeter.UsSurveySquareFeet).SquareMeters, UsSurveySquareFeetTolerance);
152158
}
153159

154160
[Fact]

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

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -452,6 +452,40 @@ public static class NumberToAreaExtensions
452452

453453
#endregion
454454

455+
#region UsSurveySquareFoot
456+
457+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double)"/>
458+
public static Area UsSurveySquareFeet(this int value) => Area.FromUsSurveySquareFeet(value);
459+
460+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double?)"/>
461+
public static Area? UsSurveySquareFeet(this int? value) => Area.FromUsSurveySquareFeet(value);
462+
463+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double)"/>
464+
public static Area UsSurveySquareFeet(this long value) => Area.FromUsSurveySquareFeet(value);
465+
466+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double?)"/>
467+
public static Area? UsSurveySquareFeet(this long? value) => Area.FromUsSurveySquareFeet(value);
468+
469+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double)"/>
470+
public static Area UsSurveySquareFeet(this double value) => Area.FromUsSurveySquareFeet(value);
471+
472+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double?)"/>
473+
public static Area? UsSurveySquareFeet(this double? value) => Area.FromUsSurveySquareFeet(value);
474+
475+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double)"/>
476+
public static Area UsSurveySquareFeet(this float value) => Area.FromUsSurveySquareFeet(value);
477+
478+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double?)"/>
479+
public static Area? UsSurveySquareFeet(this float? value) => Area.FromUsSurveySquareFeet(value);
480+
481+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double)"/>
482+
public static Area UsSurveySquareFeet(this decimal value) => Area.FromUsSurveySquareFeet(Convert.ToDouble(value));
483+
484+
/// <inheritdoc cref="Area.FromUsSurveySquareFeet(double?)"/>
485+
public static Area? UsSurveySquareFeet(this decimal? value) => Area.FromUsSurveySquareFeet(value == null ? (double?)null : Convert.ToDouble(value.Value));
486+
487+
#endregion
488+
455489
}
456490
}
457491
#endif

UnitsNet/GeneratedCode/Quantities/Area.g.cs

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ public double SquareYards
225225
get { return _squareMeters/0.836127; }
226226
}
227227

228+
/// <summary>
229+
/// Get Area in UsSurveySquareFeet.
230+
/// </summary>
231+
public double UsSurveySquareFeet
232+
{
233+
get { return _squareMeters/0.09290341161; }
234+
}
235+
228236
#endregion
229237

230238
#region Static
@@ -450,6 +458,24 @@ public static Area FromSquareYards(QuantityValue squareyards)
450458
}
451459
#endif
452460

461+
/// <summary>
462+
/// Get Area from UsSurveySquareFeet.
463+
/// </summary>
464+
#if WINDOWS_UWP
465+
[Windows.Foundation.Metadata.DefaultOverload]
466+
public static Area FromUsSurveySquareFeet(double ussurveysquarefeet)
467+
{
468+
double value = (double) ussurveysquarefeet;
469+
return new Area(value*0.09290341161);
470+
}
471+
#else
472+
public static Area FromUsSurveySquareFeet(QuantityValue ussurveysquarefeet)
473+
{
474+
double value = (double) ussurveysquarefeet;
475+
return new Area((value*0.09290341161));
476+
}
477+
#endif
478+
453479
// Windows Runtime Component does not support nullable types (double?): https://msdn.microsoft.com/en-us/library/br230301.aspx
454480
#if !WINDOWS_UWP
455481
/// <summary>
@@ -632,6 +658,21 @@ public static Area FromSquareYards(QuantityValue squareyards)
632658
}
633659
}
634660

661+
/// <summary>
662+
/// Get nullable Area from nullable UsSurveySquareFeet.
663+
/// </summary>
664+
public static Area? FromUsSurveySquareFeet(QuantityValue? ussurveysquarefeet)
665+
{
666+
if (ussurveysquarefeet.HasValue)
667+
{
668+
return FromUsSurveySquareFeet(ussurveysquarefeet.Value);
669+
}
670+
else
671+
{
672+
return null;
673+
}
674+
}
675+
635676
#endif
636677

637678
/// <summary>
@@ -674,6 +715,8 @@ public static Area From(QuantityValue value, AreaUnit fromUnit)
674715
return FromSquareMillimeters(value);
675716
case AreaUnit.SquareYard:
676717
return FromSquareYards(value);
718+
case AreaUnit.UsSurveySquareFoot:
719+
return FromUsSurveySquareFeet(value);
677720

678721
default:
679722
throw new NotImplementedException("fromUnit: " + fromUnit);
@@ -720,6 +763,8 @@ public static Area From(QuantityValue value, AreaUnit fromUnit)
720763
return FromSquareMillimeters(value.Value);
721764
case AreaUnit.SquareYard:
722765
return FromSquareYards(value.Value);
766+
case AreaUnit.UsSurveySquareFoot:
767+
return FromUsSurveySquareFeet(value.Value);
723768

724769
default:
725770
throw new NotImplementedException("fromUnit: " + fromUnit);
@@ -917,6 +962,8 @@ public double As(AreaUnit unit)
917962
return SquareMillimeters;
918963
case AreaUnit.SquareYard:
919964
return SquareYards;
965+
case AreaUnit.UsSurveySquareFoot:
966+
return UsSurveySquareFeet;
920967

921968
default:
922969
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
@@ -394,6 +394,11 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
394394
new AbbreviationsForCulture("en-US", "yd²"),
395395
new AbbreviationsForCulture("ru-RU", "ярд²"),
396396
}),
397+
new CulturesForEnumValue((int) AreaUnit.UsSurveySquareFoot,
398+
new[]
399+
{
400+
new AbbreviationsForCulture("en-US", "ft² (US)"),
401+
}),
397402
}),
398403
new UnitLocalization(typeof (AreaMomentOfInertiaUnit),
399404
new[]

UnitsNet/GeneratedCode/Units/AreaUnit.g.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,5 +54,6 @@ public enum AreaUnit
5454
SquareMile,
5555
SquareMillimeter,
5656
SquareYard,
57+
UsSurveySquareFoot,
5758
}
5859
}

UnitsNet/UnitDefinitions/Area.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,18 @@
146146
"Abbreviations": [ "фут²" ]
147147
}
148148
]
149+
},
150+
{
151+
"SingularName": "UsSurveySquareFoot",
152+
"PluralName": "UsSurveySquareFeet",
153+
"FromUnitToBaseFunc": "x*0.09290341161",
154+
"FromBaseToUnitFunc": "x/0.09290341161",
155+
"Localization": [
156+
{
157+
"Culture": "en-US",
158+
"Abbreviations": [ "ft² (US)" ]
159+
}
160+
]
149161
},
150162
{
151163
"SingularName": "SquareInch",

0 commit comments

Comments
 (0)