Skip to content

Commit 8d2f5d1

Browse files
committed
Merge pull request #148 from rdelhommer/add-microliters
Add Microliter unit and add Russian abbreviations
2 parents 0738210 + bef97d2 commit 8d2f5d1

File tree

6 files changed

+55
-3
lines changed

6 files changed

+55
-3
lines changed

UnitsNet.Tests/CustomCode/VolumeTests.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ public class VolumeTests : VolumeTestsBase
5656
protected override double ImperialOuncesInOneCubicMeter => 35195.07972;
5757

5858
protected override double LitersInOneCubicMeter => 1E3;
59-
59+
60+
protected override double MicrolitersInOneCubicMeter => 1E9;
61+
6062
protected override double MillilitersInOneCubicMeter => 1E6;
6163

6264
protected override double AuTablespoonsInOneCubicMeter => 50000;

UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ public abstract partial class VolumeTestsBase
5555
protected abstract double LitersInOneCubicMeter { get; }
5656
protected abstract double MetricCupsInOneCubicMeter { get; }
5757
protected abstract double MetricTeaspoonsInOneCubicMeter { get; }
58+
protected abstract double MicrolitersInOneCubicMeter { get; }
5859
protected abstract double MillilitersInOneCubicMeter { get; }
5960
protected abstract double TablespoonsInOneCubicMeter { get; }
6061
protected abstract double TeaspoonsInOneCubicMeter { get; }
@@ -86,6 +87,7 @@ public abstract partial class VolumeTestsBase
8687
protected virtual double LitersTolerance { get { return 1e-5; } }
8788
protected virtual double MetricCupsTolerance { get { return 1e-5; } }
8889
protected virtual double MetricTeaspoonsTolerance { get { return 1e-5; } }
90+
protected virtual double MicrolitersTolerance { get { return 1e-5; } }
8991
protected virtual double MillilitersTolerance { get { return 1e-5; } }
9092
protected virtual double TablespoonsTolerance { get { return 1e-5; } }
9193
protected virtual double TeaspoonsTolerance { get { return 1e-5; } }
@@ -121,6 +123,7 @@ public void CubicMeterToVolumeUnits()
121123
Assert.AreEqual(LitersInOneCubicMeter, cubicmeter.Liters, LitersTolerance);
122124
Assert.AreEqual(MetricCupsInOneCubicMeter, cubicmeter.MetricCups, MetricCupsTolerance);
123125
Assert.AreEqual(MetricTeaspoonsInOneCubicMeter, cubicmeter.MetricTeaspoons, MetricTeaspoonsTolerance);
126+
Assert.AreEqual(MicrolitersInOneCubicMeter, cubicmeter.Microliters, MicrolitersTolerance);
124127
Assert.AreEqual(MillilitersInOneCubicMeter, cubicmeter.Milliliters, MillilitersTolerance);
125128
Assert.AreEqual(TablespoonsInOneCubicMeter, cubicmeter.Tablespoons, TablespoonsTolerance);
126129
Assert.AreEqual(TeaspoonsInOneCubicMeter, cubicmeter.Teaspoons, TeaspoonsTolerance);
@@ -155,6 +158,7 @@ public void FromValueAndUnit()
155158
Assert.AreEqual(1, Volume.From(1, VolumeUnit.Liter).Liters, LitersTolerance);
156159
Assert.AreEqual(1, Volume.From(1, VolumeUnit.MetricCup).MetricCups, MetricCupsTolerance);
157160
Assert.AreEqual(1, Volume.From(1, VolumeUnit.MetricTeaspoon).MetricTeaspoons, MetricTeaspoonsTolerance);
161+
Assert.AreEqual(1, Volume.From(1, VolumeUnit.Microliter).Microliters, MicrolitersTolerance);
158162
Assert.AreEqual(1, Volume.From(1, VolumeUnit.Milliliter).Milliliters, MillilitersTolerance);
159163
Assert.AreEqual(1, Volume.From(1, VolumeUnit.Tablespoon).Tablespoons, TablespoonsTolerance);
160164
Assert.AreEqual(1, Volume.From(1, VolumeUnit.Teaspoon).Teaspoons, TeaspoonsTolerance);
@@ -190,6 +194,7 @@ public void As()
190194
Assert.AreEqual(LitersInOneCubicMeter, cubicmeter.As(VolumeUnit.Liter), LitersTolerance);
191195
Assert.AreEqual(MetricCupsInOneCubicMeter, cubicmeter.As(VolumeUnit.MetricCup), MetricCupsTolerance);
192196
Assert.AreEqual(MetricTeaspoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.MetricTeaspoon), MetricTeaspoonsTolerance);
197+
Assert.AreEqual(MicrolitersInOneCubicMeter, cubicmeter.As(VolumeUnit.Microliter), MicrolitersTolerance);
193198
Assert.AreEqual(MillilitersInOneCubicMeter, cubicmeter.As(VolumeUnit.Milliliter), MillilitersTolerance);
194199
Assert.AreEqual(TablespoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.Tablespoon), TablespoonsTolerance);
195200
Assert.AreEqual(TeaspoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.Teaspoon), TeaspoonsTolerance);
@@ -225,6 +230,7 @@ public void ConversionRoundTrip()
225230
Assert.AreEqual(1, Volume.FromLiters(cubicmeter.Liters).CubicMeters, LitersTolerance);
226231
Assert.AreEqual(1, Volume.FromMetricCups(cubicmeter.MetricCups).CubicMeters, MetricCupsTolerance);
227232
Assert.AreEqual(1, Volume.FromMetricTeaspoons(cubicmeter.MetricTeaspoons).CubicMeters, MetricTeaspoonsTolerance);
233+
Assert.AreEqual(1, Volume.FromMicroliters(cubicmeter.Microliters).CubicMeters, MicrolitersTolerance);
228234
Assert.AreEqual(1, Volume.FromMilliliters(cubicmeter.Milliliters).CubicMeters, MillilitersTolerance);
229235
Assert.AreEqual(1, Volume.FromTablespoons(cubicmeter.Tablespoons).CubicMeters, TablespoonsTolerance);
230236
Assert.AreEqual(1, Volume.FromTeaspoons(cubicmeter.Teaspoons).CubicMeters, TeaspoonsTolerance);

UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public enum VolumeUnit
4444
Liter,
4545
MetricCup,
4646
MetricTeaspoon,
47+
Microliter,
4748
Milliliter,
4849
[System.Obsolete("Deprecated due to github issue #134, please use UsTablespoon instead")]
4950
Tablespoon,

UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -206,6 +206,14 @@ public double MetricTeaspoons
206206
get { return _cubicMeters/0.5e-5; }
207207
}
208208

209+
/// <summary>
210+
/// Get Volume in Microliters.
211+
/// </summary>
212+
public double Microliters
213+
{
214+
get { return (_cubicMeters*1e3) / 1e-6d; }
215+
}
216+
209217
/// <summary>
210218
/// Get Volume in Milliliters.
211219
/// </summary>
@@ -449,6 +457,14 @@ public static Volume FromMetricTeaspoons(double metricteaspoons)
449457
return new Volume(metricteaspoons*0.5e-5);
450458
}
451459

460+
/// <summary>
461+
/// Get Volume from Microliters.
462+
/// </summary>
463+
public static Volume FromMicroliters(double microliters)
464+
{
465+
return new Volume((microliters/1e3) * 1e-6d);
466+
}
467+
452468
/// <summary>
453469
/// Get Volume from Milliliters.
454470
/// </summary>
@@ -815,6 +831,21 @@ public static Volume FromUsTeaspoons(double usteaspoons)
815831
}
816832
}
817833

834+
/// <summary>
835+
/// Get nullable Volume from nullable Microliters.
836+
/// </summary>
837+
public static Volume? FromMicroliters(double? microliters)
838+
{
839+
if (microliters.HasValue)
840+
{
841+
return FromMicroliters(microliters.Value);
842+
}
843+
else
844+
{
845+
return null;
846+
}
847+
}
848+
818849
/// <summary>
819850
/// Get nullable Volume from nullable Milliliters.
820851
/// </summary>
@@ -1014,6 +1045,8 @@ public static Volume From(double value, VolumeUnit fromUnit)
10141045
return FromMetricCups(value);
10151046
case VolumeUnit.MetricTeaspoon:
10161047
return FromMetricTeaspoons(value);
1048+
case VolumeUnit.Microliter:
1049+
return FromMicroliters(value);
10171050
case VolumeUnit.Milliliter:
10181051
return FromMilliliters(value);
10191052
case VolumeUnit.Tablespoon:
@@ -1092,6 +1125,8 @@ public static Volume From(double value, VolumeUnit fromUnit)
10921125
return FromMetricCups(value.Value);
10931126
case VolumeUnit.MetricTeaspoon:
10941127
return FromMetricTeaspoons(value.Value);
1128+
case VolumeUnit.Microliter:
1129+
return FromMicroliters(value.Value);
10951130
case VolumeUnit.Milliliter:
10961131
return FromMilliliters(value.Value);
10971132
case VolumeUnit.Tablespoon:
@@ -1283,6 +1318,8 @@ public double As(VolumeUnit unit)
12831318
return MetricCups;
12841319
case VolumeUnit.MetricTeaspoon:
12851320
return MetricTeaspoons;
1321+
case VolumeUnit.Microliter:
1322+
return Microliters;
12861323
case VolumeUnit.Milliliter:
12871324
return Milliliters;
12881325
case VolumeUnit.Tablespoon:

UnitsNet/GeneratedCode/UnitSystem.Default.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2115,6 +2115,12 @@ private static readonly ReadOnlyCollection<UnitLocalization> DefaultLocalization
21152115
new AbbreviationsForCulture("ru-RU", ""),
21162116
new AbbreviationsForCulture("nb-NO", ""),
21172117
}),
2118+
new CulturesForEnumValue((int) VolumeUnit.Microliter,
2119+
new[]
2120+
{
2121+
new AbbreviationsForCulture("en-US", "μl"),
2122+
new AbbreviationsForCulture("ru-RU", "мкл"),
2123+
}),
21182124
new CulturesForEnumValue((int) VolumeUnit.Milliliter,
21192125
new[]
21202126
{

UnitsNet/Scripts/UnitDefinitions/Volume.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"PluralName": "Liters",
99
"FromUnitToBaseFunc": "x/1e3",
1010
"FromBaseToUnitFunc": "x*1e3",
11-
"Prefixes": [ "Milli", "Centi", "Deci", "Hecto" ],
11+
"Prefixes": [ "Micro", "Milli", "Centi", "Deci", "Hecto" ],
1212
"Localization": [
1313
{
1414
"Culture": "en-US",
@@ -17,7 +17,7 @@
1717
{
1818
"Culture": "ru-RU",
1919
"Abbreviations": [ "л" ],
20-
"AbbreviationsWithPrefixes": [ "мл", "сл", "дл", "гл" ]
20+
"AbbreviationsWithPrefixes": [ "мкл", "мл", "сл", "дл", "гл" ]
2121
}
2222
]
2323
},

0 commit comments

Comments
 (0)