Skip to content

Commit 59096f2

Browse files
authored
Merge pull request #440 from CaptainBlueScreen/addQuartAndPintVolumes
Added UsQuart and UsPint volumes Nice work! @CaptainBlueScreen :) @angularsen Merging. Do we release nuget update every additional unit/s?
2 parents 3632fdb + af1d4f2 commit 59096f2

File tree

7 files changed

+190
-0
lines changed

7 files changed

+190
-0
lines changed

UnitsNet.Tests/CustomCode/VolumeTests.cs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ public class VolumeTests : VolumeTestsBase
106106

107107
protected override double OilBarrelsInOneCubicMeter => 6.2898107704321051280928552764086;
108108

109+
protected override double UsPintsInOneCubicMeter => 2113.3764188652;
110+
111+
protected override double UsQuartsInOneCubicMeter => 1056.6882094326;
112+
109113
[Fact]
110114
public void VolumeDividedByAreaEqualsLength()
111115
{

UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,8 @@ public abstract partial class VolumeTestsBase
9292
protected abstract double UsGallonsInOneCubicMeter { get; }
9393
protected abstract double UsLegalCupsInOneCubicMeter { get; }
9494
protected abstract double UsOuncesInOneCubicMeter { get; }
95+
protected abstract double UsPintsInOneCubicMeter { get; }
96+
protected abstract double UsQuartsInOneCubicMeter { get; }
9597
protected abstract double UsTablespoonsInOneCubicMeter { get; }
9698
protected abstract double UsTeaspoonsInOneCubicMeter { get; }
9799

@@ -136,6 +138,8 @@ public abstract partial class VolumeTestsBase
136138
protected virtual double UsGallonsTolerance { get { return 1e-5; } }
137139
protected virtual double UsLegalCupsTolerance { get { return 1e-5; } }
138140
protected virtual double UsOuncesTolerance { get { return 1e-5; } }
141+
protected virtual double UsPintsTolerance { get { return 1e-5; } }
142+
protected virtual double UsQuartsTolerance { get { return 1e-5; } }
139143
protected virtual double UsTablespoonsTolerance { get { return 1e-5; } }
140144
protected virtual double UsTeaspoonsTolerance { get { return 1e-5; } }
141145
// ReSharper restore VirtualMemberNeverOverriden.Global
@@ -184,6 +188,8 @@ public void CubicMeterToVolumeUnits()
184188
AssertEx.EqualTolerance(UsGallonsInOneCubicMeter, cubicmeter.UsGallons, UsGallonsTolerance);
185189
AssertEx.EqualTolerance(UsLegalCupsInOneCubicMeter, cubicmeter.UsLegalCups, UsLegalCupsTolerance);
186190
AssertEx.EqualTolerance(UsOuncesInOneCubicMeter, cubicmeter.UsOunces, UsOuncesTolerance);
191+
AssertEx.EqualTolerance(UsPintsInOneCubicMeter, cubicmeter.UsPints, UsPintsTolerance);
192+
AssertEx.EqualTolerance(UsQuartsInOneCubicMeter, cubicmeter.UsQuarts, UsQuartsTolerance);
187193
AssertEx.EqualTolerance(UsTablespoonsInOneCubicMeter, cubicmeter.UsTablespoons, UsTablespoonsTolerance);
188194
AssertEx.EqualTolerance(UsTeaspoonsInOneCubicMeter, cubicmeter.UsTeaspoons, UsTeaspoonsTolerance);
189195
}
@@ -231,6 +237,8 @@ public void FromValueAndUnit()
231237
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsGallon).UsGallons, UsGallonsTolerance);
232238
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsLegalCup).UsLegalCups, UsLegalCupsTolerance);
233239
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsOunce).UsOunces, UsOuncesTolerance);
240+
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsPint).UsPints, UsPintsTolerance);
241+
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsQuart).UsQuarts, UsQuartsTolerance);
234242
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsTablespoon).UsTablespoons, UsTablespoonsTolerance);
235243
AssertEx.EqualTolerance(1, Volume.From(1, VolumeUnit.UsTeaspoon).UsTeaspoons, UsTeaspoonsTolerance);
236244
}
@@ -279,6 +287,8 @@ public void As()
279287
AssertEx.EqualTolerance(UsGallonsInOneCubicMeter, cubicmeter.As(VolumeUnit.UsGallon), UsGallonsTolerance);
280288
AssertEx.EqualTolerance(UsLegalCupsInOneCubicMeter, cubicmeter.As(VolumeUnit.UsLegalCup), UsLegalCupsTolerance);
281289
AssertEx.EqualTolerance(UsOuncesInOneCubicMeter, cubicmeter.As(VolumeUnit.UsOunce), UsOuncesTolerance);
290+
AssertEx.EqualTolerance(UsPintsInOneCubicMeter, cubicmeter.As(VolumeUnit.UsPint), UsPintsTolerance);
291+
AssertEx.EqualTolerance(UsQuartsInOneCubicMeter, cubicmeter.As(VolumeUnit.UsQuart), UsQuartsTolerance);
282292
AssertEx.EqualTolerance(UsTablespoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.UsTablespoon), UsTablespoonsTolerance);
283293
AssertEx.EqualTolerance(UsTeaspoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.UsTeaspoon), UsTeaspoonsTolerance);
284294
}
@@ -327,6 +337,8 @@ public void ConversionRoundTrip()
327337
AssertEx.EqualTolerance(1, Volume.FromUsGallons(cubicmeter.UsGallons).CubicMeters, UsGallonsTolerance);
328338
AssertEx.EqualTolerance(1, Volume.FromUsLegalCups(cubicmeter.UsLegalCups).CubicMeters, UsLegalCupsTolerance);
329339
AssertEx.EqualTolerance(1, Volume.FromUsOunces(cubicmeter.UsOunces).CubicMeters, UsOuncesTolerance);
340+
AssertEx.EqualTolerance(1, Volume.FromUsPints(cubicmeter.UsPints).CubicMeters, UsPintsTolerance);
341+
AssertEx.EqualTolerance(1, Volume.FromUsQuarts(cubicmeter.UsQuarts).CubicMeters, UsQuartsTolerance);
330342
AssertEx.EqualTolerance(1, Volume.FromUsTablespoons(cubicmeter.UsTablespoons).CubicMeters, UsTablespoonsTolerance);
331343
AssertEx.EqualTolerance(1, Volume.FromUsTeaspoons(cubicmeter.UsTeaspoons).CubicMeters, UsTeaspoonsTolerance);
332344
}

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

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1404,6 +1404,74 @@ public static class NumberToVolumeExtensions
14041404

14051405
#endregion
14061406

1407+
#region UsPint
1408+
1409+
/// <inheritdoc cref="Volume.FromUsPints(double)"/>
1410+
public static Volume UsPints(this int value) => Volume.FromUsPints(value);
1411+
1412+
/// <inheritdoc cref="Volume.FromUsPints(double?)"/>
1413+
public static Volume? UsPints(this int? value) => Volume.FromUsPints(value);
1414+
1415+
/// <inheritdoc cref="Volume.FromUsPints(double)"/>
1416+
public static Volume UsPints(this long value) => Volume.FromUsPints(value);
1417+
1418+
/// <inheritdoc cref="Volume.FromUsPints(double?)"/>
1419+
public static Volume? UsPints(this long? value) => Volume.FromUsPints(value);
1420+
1421+
/// <inheritdoc cref="Volume.FromUsPints(double)"/>
1422+
public static Volume UsPints(this double value) => Volume.FromUsPints(value);
1423+
1424+
/// <inheritdoc cref="Volume.FromUsPints(double?)"/>
1425+
public static Volume? UsPints(this double? value) => Volume.FromUsPints(value);
1426+
1427+
/// <inheritdoc cref="Volume.FromUsPints(double)"/>
1428+
public static Volume UsPints(this float value) => Volume.FromUsPints(value);
1429+
1430+
/// <inheritdoc cref="Volume.FromUsPints(double?)"/>
1431+
public static Volume? UsPints(this float? value) => Volume.FromUsPints(value);
1432+
1433+
/// <inheritdoc cref="Volume.FromUsPints(double)"/>
1434+
public static Volume UsPints(this decimal value) => Volume.FromUsPints(Convert.ToDouble(value));
1435+
1436+
/// <inheritdoc cref="Volume.FromUsPints(double?)"/>
1437+
public static Volume? UsPints(this decimal? value) => Volume.FromUsPints(value == null ? (double?)null : Convert.ToDouble(value.Value));
1438+
1439+
#endregion
1440+
1441+
#region UsQuart
1442+
1443+
/// <inheritdoc cref="Volume.FromUsQuarts(double)"/>
1444+
public static Volume UsQuarts(this int value) => Volume.FromUsQuarts(value);
1445+
1446+
/// <inheritdoc cref="Volume.FromUsQuarts(double?)"/>
1447+
public static Volume? UsQuarts(this int? value) => Volume.FromUsQuarts(value);
1448+
1449+
/// <inheritdoc cref="Volume.FromUsQuarts(double)"/>
1450+
public static Volume UsQuarts(this long value) => Volume.FromUsQuarts(value);
1451+
1452+
/// <inheritdoc cref="Volume.FromUsQuarts(double?)"/>
1453+
public static Volume? UsQuarts(this long? value) => Volume.FromUsQuarts(value);
1454+
1455+
/// <inheritdoc cref="Volume.FromUsQuarts(double)"/>
1456+
public static Volume UsQuarts(this double value) => Volume.FromUsQuarts(value);
1457+
1458+
/// <inheritdoc cref="Volume.FromUsQuarts(double?)"/>
1459+
public static Volume? UsQuarts(this double? value) => Volume.FromUsQuarts(value);
1460+
1461+
/// <inheritdoc cref="Volume.FromUsQuarts(double)"/>
1462+
public static Volume UsQuarts(this float value) => Volume.FromUsQuarts(value);
1463+
1464+
/// <inheritdoc cref="Volume.FromUsQuarts(double?)"/>
1465+
public static Volume? UsQuarts(this float? value) => Volume.FromUsQuarts(value);
1466+
1467+
/// <inheritdoc cref="Volume.FromUsQuarts(double)"/>
1468+
public static Volume UsQuarts(this decimal value) => Volume.FromUsQuarts(Convert.ToDouble(value));
1469+
1470+
/// <inheritdoc cref="Volume.FromUsQuarts(double?)"/>
1471+
public static Volume? UsQuarts(this decimal? value) => Volume.FromUsQuarts(value == null ? (double?)null : Convert.ToDouble(value.Value));
1472+
1473+
#endregion
1474+
14071475
#region UsTablespoon
14081476

14091477
/// <inheritdoc cref="Volume.FromUsTablespoons(double)"/>

UnitsNet/GeneratedCode/Quantities/Volume.g.cs

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,14 @@ public Volume(double cubicmeters)
325325
/// </summary>
326326
public double UsOunces => As(VolumeUnit.UsOunce);
327327
/// <summary>
328+
/// Get Volume in UsPints.
329+
/// </summary>
330+
public double UsPints => As(VolumeUnit.UsPint);
331+
/// <summary>
332+
/// Get Volume in UsQuarts.
333+
/// </summary>
334+
public double UsQuarts => As(VolumeUnit.UsQuart);
335+
/// <summary>
328336
/// Get Volume in UsTablespoons.
329337
/// </summary>
330338
public double UsTablespoons => As(VolumeUnit.UsTablespoon);
@@ -899,6 +907,34 @@ public static Volume FromUsOunces(QuantityValue usounces)
899907
return new Volume(value, VolumeUnit.UsOunce);
900908
}
901909

910+
/// <summary>
911+
/// Get Volume from UsPints.
912+
/// </summary>
913+
#if WINDOWS_UWP
914+
[Windows.Foundation.Metadata.DefaultOverload]
915+
public static Volume FromUsPints(double uspints)
916+
#else
917+
public static Volume FromUsPints(QuantityValue uspints)
918+
#endif
919+
{
920+
double value = (double) uspints;
921+
return new Volume(value, VolumeUnit.UsPint);
922+
}
923+
924+
/// <summary>
925+
/// Get Volume from UsQuarts.
926+
/// </summary>
927+
#if WINDOWS_UWP
928+
[Windows.Foundation.Metadata.DefaultOverload]
929+
public static Volume FromUsQuarts(double usquarts)
930+
#else
931+
public static Volume FromUsQuarts(QuantityValue usquarts)
932+
#endif
933+
{
934+
double value = (double) usquarts;
935+
return new Volume(value, VolumeUnit.UsQuart);
936+
}
937+
902938
/// <summary>
903939
/// Get Volume from UsTablespoons.
904940
/// </summary>
@@ -1529,6 +1565,36 @@ public static Volume FromUsTeaspoons(QuantityValue usteaspoons)
15291565
}
15301566
}
15311567

1568+
/// <summary>
1569+
/// Get nullable Volume from nullable UsPints.
1570+
/// </summary>
1571+
public static Volume? FromUsPints(QuantityValue? uspints)
1572+
{
1573+
if (uspints.HasValue)
1574+
{
1575+
return FromUsPints(uspints.Value);
1576+
}
1577+
else
1578+
{
1579+
return null;
1580+
}
1581+
}
1582+
1583+
/// <summary>
1584+
/// Get nullable Volume from nullable UsQuarts.
1585+
/// </summary>
1586+
public static Volume? FromUsQuarts(QuantityValue? usquarts)
1587+
{
1588+
if (usquarts.HasValue)
1589+
{
1590+
return FromUsQuarts(usquarts.Value);
1591+
}
1592+
else
1593+
{
1594+
return null;
1595+
}
1596+
}
1597+
15321598
/// <summary>
15331599
/// Get nullable Volume from nullable UsTablespoons.
15341600
/// </summary>
@@ -1826,6 +1892,8 @@ public double As(VolumeUnit unit)
18261892
case VolumeUnit.UsGallon: return baseUnitValue/0.00378541;
18271893
case VolumeUnit.UsLegalCup: return baseUnitValue/0.00024;
18281894
case VolumeUnit.UsOunce: return baseUnitValue/2.957352956253760505068307980135e-5;
1895+
case VolumeUnit.UsPint: return baseUnitValue/4.73176473e-4;
1896+
case VolumeUnit.UsQuart: return baseUnitValue/9.46352946e-4;
18291897
case VolumeUnit.UsTablespoon: return baseUnitValue/1.478676478125e-5;
18301898
case VolumeUnit.UsTeaspoon: return baseUnitValue/4.92892159375e-6;
18311899

@@ -2231,6 +2299,8 @@ private double AsBaseUnitCubicMeters()
22312299
case VolumeUnit.UsGallon: return _value*0.00378541;
22322300
case VolumeUnit.UsLegalCup: return _value*0.00024;
22332301
case VolumeUnit.UsOunce: return _value*2.957352956253760505068307980135e-5;
2302+
case VolumeUnit.UsPint: return _value*4.73176473e-4;
2303+
case VolumeUnit.UsQuart: return _value*9.46352946e-4;
22342304
case VolumeUnit.UsTablespoon: return _value*1.478676478125e-5;
22352305
case VolumeUnit.UsTeaspoon: return _value*4.92892159375e-6;
22362306
default:

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4346,6 +4346,16 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
43464346
new AbbreviationsForCulture("en-US", "oz (U.S.)"),
43474347
new AbbreviationsForCulture("ru-RU", "Американская унция"),
43484348
}),
4349+
new CulturesForEnumValue((int) VolumeUnit.UsPint,
4350+
new[]
4351+
{
4352+
new AbbreviationsForCulture("en-US", "pt (U.S.)"),
4353+
}),
4354+
new CulturesForEnumValue((int) VolumeUnit.UsQuart,
4355+
new[]
4356+
{
4357+
new AbbreviationsForCulture("en-US", "qt (U.S.)"),
4358+
}),
43494359
new CulturesForEnumValue((int) VolumeUnit.UsTablespoon,
43504360
new[]
43514361
{

UnitsNet/GeneratedCode/Units/VolumeUnit.g.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,8 @@ public enum VolumeUnit
8484
UsGallon,
8585
UsLegalCup,
8686
UsOunce,
87+
UsPint,
88+
UsQuart,
8789
UsTablespoon,
8890
UsTeaspoon,
8991
}

UnitsNet/UnitDefinitions/Volume.json

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,30 @@
462462
"Abbreviations": [ "bl (imp.)" ]
463463
}
464464
]
465+
},
466+
{
467+
"SingularName": "UsQuart",
468+
"PluralName": "UsQuarts",
469+
"FromUnitToBaseFunc": "x*9.46352946e-4",
470+
"FromBaseToUnitFunc": "x/9.46352946e-4",
471+
"Localization": [
472+
{
473+
"Culture": "en-US",
474+
"Abbreviations": [ "qt (U.S.)" ]
475+
}
476+
]
477+
},
478+
{
479+
"SingularName": "UsPint",
480+
"PluralName": "UsPints",
481+
"FromUnitToBaseFunc": "x*4.73176473e-4",
482+
"FromBaseToUnitFunc": "x/4.73176473e-4",
483+
"Localization": [
484+
{
485+
"Culture": "en-US",
486+
"Abbreviations": [ "pt (U.S.)" ]
487+
}
488+
]
465489
}
466490
]
467491
}

0 commit comments

Comments
 (0)