diff --git a/UnitsNet.Tests/CustomCode/VolumeTests.cs b/UnitsNet.Tests/CustomCode/VolumeTests.cs index 4b1b7ab163..fc0f5c02c8 100644 --- a/UnitsNet.Tests/CustomCode/VolumeTests.cs +++ b/UnitsNet.Tests/CustomCode/VolumeTests.cs @@ -56,7 +56,9 @@ public class VolumeTests : VolumeTestsBase protected override double ImperialOuncesInOneCubicMeter => 35195.07972; protected override double LitersInOneCubicMeter => 1E3; - + + protected override double MicrolitersInOneCubicMeter => 1E9; + protected override double MillilitersInOneCubicMeter => 1E6; protected override double AuTablespoonsInOneCubicMeter => 50000; diff --git a/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs index 35297ebd61..3862a56083 100644 --- a/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/VolumeTestsBase.g.cs @@ -55,6 +55,7 @@ public abstract partial class VolumeTestsBase protected abstract double LitersInOneCubicMeter { get; } protected abstract double MetricCupsInOneCubicMeter { get; } protected abstract double MetricTeaspoonsInOneCubicMeter { get; } + protected abstract double MicrolitersInOneCubicMeter { get; } protected abstract double MillilitersInOneCubicMeter { get; } protected abstract double TablespoonsInOneCubicMeter { get; } protected abstract double TeaspoonsInOneCubicMeter { get; } @@ -86,6 +87,7 @@ public abstract partial class VolumeTestsBase protected virtual double LitersTolerance { get { return 1e-5; } } protected virtual double MetricCupsTolerance { get { return 1e-5; } } protected virtual double MetricTeaspoonsTolerance { get { return 1e-5; } } + protected virtual double MicrolitersTolerance { get { return 1e-5; } } protected virtual double MillilitersTolerance { get { return 1e-5; } } protected virtual double TablespoonsTolerance { get { return 1e-5; } } protected virtual double TeaspoonsTolerance { get { return 1e-5; } } @@ -121,6 +123,7 @@ public void CubicMeterToVolumeUnits() Assert.AreEqual(LitersInOneCubicMeter, cubicmeter.Liters, LitersTolerance); Assert.AreEqual(MetricCupsInOneCubicMeter, cubicmeter.MetricCups, MetricCupsTolerance); Assert.AreEqual(MetricTeaspoonsInOneCubicMeter, cubicmeter.MetricTeaspoons, MetricTeaspoonsTolerance); + Assert.AreEqual(MicrolitersInOneCubicMeter, cubicmeter.Microliters, MicrolitersTolerance); Assert.AreEqual(MillilitersInOneCubicMeter, cubicmeter.Milliliters, MillilitersTolerance); Assert.AreEqual(TablespoonsInOneCubicMeter, cubicmeter.Tablespoons, TablespoonsTolerance); Assert.AreEqual(TeaspoonsInOneCubicMeter, cubicmeter.Teaspoons, TeaspoonsTolerance); @@ -155,6 +158,7 @@ public void FromValueAndUnit() Assert.AreEqual(1, Volume.From(1, VolumeUnit.Liter).Liters, LitersTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.MetricCup).MetricCups, MetricCupsTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.MetricTeaspoon).MetricTeaspoons, MetricTeaspoonsTolerance); + Assert.AreEqual(1, Volume.From(1, VolumeUnit.Microliter).Microliters, MicrolitersTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.Milliliter).Milliliters, MillilitersTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.Tablespoon).Tablespoons, TablespoonsTolerance); Assert.AreEqual(1, Volume.From(1, VolumeUnit.Teaspoon).Teaspoons, TeaspoonsTolerance); @@ -190,6 +194,7 @@ public void As() Assert.AreEqual(LitersInOneCubicMeter, cubicmeter.As(VolumeUnit.Liter), LitersTolerance); Assert.AreEqual(MetricCupsInOneCubicMeter, cubicmeter.As(VolumeUnit.MetricCup), MetricCupsTolerance); Assert.AreEqual(MetricTeaspoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.MetricTeaspoon), MetricTeaspoonsTolerance); + Assert.AreEqual(MicrolitersInOneCubicMeter, cubicmeter.As(VolumeUnit.Microliter), MicrolitersTolerance); Assert.AreEqual(MillilitersInOneCubicMeter, cubicmeter.As(VolumeUnit.Milliliter), MillilitersTolerance); Assert.AreEqual(TablespoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.Tablespoon), TablespoonsTolerance); Assert.AreEqual(TeaspoonsInOneCubicMeter, cubicmeter.As(VolumeUnit.Teaspoon), TeaspoonsTolerance); @@ -225,6 +230,7 @@ public void ConversionRoundTrip() Assert.AreEqual(1, Volume.FromLiters(cubicmeter.Liters).CubicMeters, LitersTolerance); Assert.AreEqual(1, Volume.FromMetricCups(cubicmeter.MetricCups).CubicMeters, MetricCupsTolerance); Assert.AreEqual(1, Volume.FromMetricTeaspoons(cubicmeter.MetricTeaspoons).CubicMeters, MetricTeaspoonsTolerance); + Assert.AreEqual(1, Volume.FromMicroliters(cubicmeter.Microliters).CubicMeters, MicrolitersTolerance); Assert.AreEqual(1, Volume.FromMilliliters(cubicmeter.Milliliters).CubicMeters, MillilitersTolerance); Assert.AreEqual(1, Volume.FromTablespoons(cubicmeter.Tablespoons).CubicMeters, TablespoonsTolerance); Assert.AreEqual(1, Volume.FromTeaspoons(cubicmeter.Teaspoons).CubicMeters, TeaspoonsTolerance); diff --git a/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs b/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs index ee943d949d..161a636cd4 100644 --- a/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs +++ b/UnitsNet/GeneratedCode/Enums/VolumeUnit.g.cs @@ -44,6 +44,7 @@ public enum VolumeUnit Liter, MetricCup, MetricTeaspoon, + Microliter, Milliliter, [System.Obsolete("Deprecated due to github issue #134, please use UsTablespoon instead")] Tablespoon, diff --git a/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs b/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs index 50bdeff1ca..20a82e7e91 100644 --- a/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs +++ b/UnitsNet/GeneratedCode/UnitClasses/Volume.g.cs @@ -206,6 +206,14 @@ public double MetricTeaspoons get { return _cubicMeters/0.5e-5; } } + /// + /// Get Volume in Microliters. + /// + public double Microliters + { + get { return (_cubicMeters*1e3) / 1e-6d; } + } + /// /// Get Volume in Milliliters. /// @@ -449,6 +457,14 @@ public static Volume FromMetricTeaspoons(double metricteaspoons) return new Volume(metricteaspoons*0.5e-5); } + /// + /// Get Volume from Microliters. + /// + public static Volume FromMicroliters(double microliters) + { + return new Volume((microliters/1e3) * 1e-6d); + } + /// /// Get Volume from Milliliters. /// @@ -815,6 +831,21 @@ public static Volume FromUsTeaspoons(double usteaspoons) } } + /// + /// Get nullable Volume from nullable Microliters. + /// + public static Volume? FromMicroliters(double? microliters) + { + if (microliters.HasValue) + { + return FromMicroliters(microliters.Value); + } + else + { + return null; + } + } + /// /// Get nullable Volume from nullable Milliliters. /// @@ -1014,6 +1045,8 @@ public static Volume From(double value, VolumeUnit fromUnit) return FromMetricCups(value); case VolumeUnit.MetricTeaspoon: return FromMetricTeaspoons(value); + case VolumeUnit.Microliter: + return FromMicroliters(value); case VolumeUnit.Milliliter: return FromMilliliters(value); case VolumeUnit.Tablespoon: @@ -1092,6 +1125,8 @@ public static Volume From(double value, VolumeUnit fromUnit) return FromMetricCups(value.Value); case VolumeUnit.MetricTeaspoon: return FromMetricTeaspoons(value.Value); + case VolumeUnit.Microliter: + return FromMicroliters(value.Value); case VolumeUnit.Milliliter: return FromMilliliters(value.Value); case VolumeUnit.Tablespoon: @@ -1283,6 +1318,8 @@ public double As(VolumeUnit unit) return MetricCups; case VolumeUnit.MetricTeaspoon: return MetricTeaspoons; + case VolumeUnit.Microliter: + return Microliters; case VolumeUnit.Milliliter: return Milliliters; case VolumeUnit.Tablespoon: diff --git a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs index bc7b195e90..c4acbf8d36 100644 --- a/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs +++ b/UnitsNet/GeneratedCode/UnitSystem.Default.g.cs @@ -2115,6 +2115,12 @@ private static readonly ReadOnlyCollection DefaultLocalization new AbbreviationsForCulture("ru-RU", ""), new AbbreviationsForCulture("nb-NO", ""), }), + new CulturesForEnumValue((int) VolumeUnit.Microliter, + new[] + { + new AbbreviationsForCulture("en-US", "μl"), + new AbbreviationsForCulture("ru-RU", "мкл"), + }), new CulturesForEnumValue((int) VolumeUnit.Milliliter, new[] { diff --git a/UnitsNet/Scripts/UnitDefinitions/Volume.json b/UnitsNet/Scripts/UnitDefinitions/Volume.json index 44aeb2ffcb..2510ca5626 100644 --- a/UnitsNet/Scripts/UnitDefinitions/Volume.json +++ b/UnitsNet/Scripts/UnitDefinitions/Volume.json @@ -8,7 +8,7 @@ "PluralName": "Liters", "FromUnitToBaseFunc": "x/1e3", "FromBaseToUnitFunc": "x*1e3", - "Prefixes": [ "Milli", "Centi", "Deci", "Hecto" ], + "Prefixes": [ "Micro", "Milli", "Centi", "Deci", "Hecto" ], "Localization": [ { "Culture": "en-US", @@ -17,7 +17,7 @@ { "Culture": "ru-RU", "Abbreviations": [ "л" ], - "AbbreviationsWithPrefixes": [ "мл", "сл", "дл", "гл" ] + "AbbreviationsWithPrefixes": [ "мкл", "мл", "сл", "дл", "гл" ] } ] },