Skip to content

Commit 817709f

Browse files
committed
Added microgram and nanogram mass units.
1 parent 2bdf4bc commit 817709f

File tree

6 files changed

+66
-2
lines changed

6 files changed

+66
-2
lines changed

Src/UnitsNet/GeneratedCode/MassUnit.g.cs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,15 @@ public double Megatonnes
113113
get { return (Kilograms - (0)) / 1000000000; }
114114
}
115115

116+
/// <summary>
117+
/// Get Mass in Micrograms.
118+
/// </summary>
119+
/// <remarks>Example: x = (y - b) / a where x is value in Micrograms and y is value in base unit Kilograms.</remarks>
120+
public double Micrograms
121+
{
122+
get { return (Kilograms - (0)) / 1E-09; }
123+
}
124+
116125
/// <summary>
117126
/// Get Mass in Milligrams.
118127
/// </summary>
@@ -122,6 +131,15 @@ public double Milligrams
122131
get { return (Kilograms - (0)) / 1E-06; }
123132
}
124133

134+
/// <summary>
135+
/// Get Mass in Nanograms.
136+
/// </summary>
137+
/// <remarks>Example: x = (y - b) / a where x is value in Nanograms and y is value in base unit Kilograms.</remarks>
138+
public double Nanograms
139+
{
140+
get { return (Kilograms - (0)) / 1E-12; }
141+
}
142+
125143
/// <summary>
126144
/// Get Mass in ShortTons.
127145
/// </summary>
@@ -230,6 +248,15 @@ public static Mass FromMegatonnes(double megatonnes)
230248
return new Mass(1000000000 * megatonnes + 0);
231249
}
232250

251+
/// <summary>
252+
/// Get Mass from Micrograms.
253+
/// </summary>
254+
/// <remarks>Example: y = ax + b where x is value in Micrograms and y is value in base unit Kilograms.</remarks>
255+
public static Mass FromMicrograms(double micrograms)
256+
{
257+
return new Mass(1E-09 * micrograms + 0);
258+
}
259+
233260
/// <summary>
234261
/// Get Mass from Milligrams.
235262
/// </summary>
@@ -239,6 +266,15 @@ public static Mass FromMilligrams(double milligrams)
239266
return new Mass(1E-06 * milligrams + 0);
240267
}
241268

269+
/// <summary>
270+
/// Get Mass from Nanograms.
271+
/// </summary>
272+
/// <remarks>Example: y = ax + b where x is value in Nanograms and y is value in base unit Kilograms.</remarks>
273+
public static Mass FromNanograms(double nanograms)
274+
{
275+
return new Mass(1E-12 * nanograms + 0);
276+
}
277+
242278
/// <summary>
243279
/// Get Mass from ShortTons.
244280
/// </summary>

Src/UnitsNet/GeneratedCode/UnitConverter.g.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -311,6 +311,10 @@ private static bool TryConvertFromMass(double value, Unit fromUnit, Unit toUnit,
311311
return TryConvert(Mass.FromCentigrams(value), toUnit, out newValue);
312312
case Unit.Milligram:
313313
return TryConvert(Mass.FromMilligrams(value), toUnit, out newValue);
314+
case Unit.Microgram:
315+
return TryConvert(Mass.FromMicrograms(value), toUnit, out newValue);
316+
case Unit.Nanogram:
317+
return TryConvert(Mass.FromNanograms(value), toUnit, out newValue);
314318
case Unit.ShortTon:
315319
return TryConvert(Mass.FromShortTons(value), toUnit, out newValue);
316320
case Unit.LongTon:
@@ -759,6 +763,12 @@ private static bool TryConvert(Mass value, Unit toUnit, out double newValue)
759763
case Unit.Milligram:
760764
newValue = value.Milligrams;
761765
return true;
766+
case Unit.Microgram:
767+
newValue = value.Micrograms;
768+
return true;
769+
case Unit.Nanogram:
770+
newValue = value.Nanograms;
771+
return true;
762772
case Unit.ShortTon:
763773
newValue = value.ShortTons;
764774
return true;

Src/UnitsNet/Unit.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ public enum Unit
5656
[Mass(1e-4)] Decigram,
5757
[Mass(1e-5)] Centigram,
5858
[Mass(1e-6)] Milligram,
59-
//[Mass(1e-9)] Microgram,
60-
//[Mass(1e-12)] Nanogram,
59+
[Mass(1e-9)] Microgram,
60+
[Mass(1e-12)] Nanogram,
6161

6262
// US, imperial and other
6363
/// <summary>

Tests/CustomCode/MassTests.cs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,11 +53,21 @@ public override double MegatonnesInOneKilogram
5353
get { return 1E-6; }
5454
}
5555

56+
public override double MicrogramsInOneKilogram
57+
{
58+
get { return 1E9; }
59+
}
60+
5661
public override double MilligramsInOneKilogram
5762
{
5863
get { return 1E6; }
5964
}
6065

66+
public override double NanogramsInOneKilogram
67+
{
68+
get { return 1E12; }
69+
}
70+
6171
public override double ShortTonsInOneKilogram
6272
{
6373
get { return 0.00110231; }

Tests/GeneratedCode/MassTestsBase.g.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,9 @@ public abstract partial class MassTestsBase
4444
public abstract double KilotonnesInOneKilogram { get; }
4545
public abstract double LongTonsInOneKilogram { get; }
4646
public abstract double MegatonnesInOneKilogram { get; }
47+
public abstract double MicrogramsInOneKilogram { get; }
4748
public abstract double MilligramsInOneKilogram { get; }
49+
public abstract double NanogramsInOneKilogram { get; }
4850
public abstract double ShortTonsInOneKilogram { get; }
4951
public abstract double TonnesInOneKilogram { get; }
5052

@@ -61,7 +63,9 @@ public void KilogramToMassUnits()
6163
Assert.AreEqual(KilotonnesInOneKilogram, kilogram.Kilotonnes, Delta);
6264
Assert.AreEqual(LongTonsInOneKilogram, kilogram.LongTons, Delta);
6365
Assert.AreEqual(MegatonnesInOneKilogram, kilogram.Megatonnes, Delta);
66+
Assert.AreEqual(MicrogramsInOneKilogram, kilogram.Micrograms, Delta);
6467
Assert.AreEqual(MilligramsInOneKilogram, kilogram.Milligrams, Delta);
68+
Assert.AreEqual(NanogramsInOneKilogram, kilogram.Nanograms, Delta);
6569
Assert.AreEqual(ShortTonsInOneKilogram, kilogram.ShortTons, Delta);
6670
Assert.AreEqual(TonnesInOneKilogram, kilogram.Tonnes, Delta);
6771
}
@@ -79,7 +83,9 @@ public void ConversionRoundTrip()
7983
Assert.AreEqual(1, Mass.FromKilotonnes(kilogram.Kilotonnes).Kilograms, Delta);
8084
Assert.AreEqual(1, Mass.FromLongTons(kilogram.LongTons).Kilograms, Delta);
8185
Assert.AreEqual(1, Mass.FromMegatonnes(kilogram.Megatonnes).Kilograms, Delta);
86+
Assert.AreEqual(1, Mass.FromMicrograms(kilogram.Micrograms).Kilograms, Delta);
8287
Assert.AreEqual(1, Mass.FromMilligrams(kilogram.Milligrams).Kilograms, Delta);
88+
Assert.AreEqual(1, Mass.FromNanograms(kilogram.Nanograms).Kilograms, Delta);
8389
Assert.AreEqual(1, Mass.FromShortTons(kilogram.ShortTons).Kilograms, Delta);
8490
Assert.AreEqual(1, Mass.FromTonnes(kilogram.Tonnes).Kilograms, Delta);
8591
}

Tests/GeneratedCode/UnitConverterTests.g.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ public void KilogramToMassUnits()
6262
Assert.AreEqual(t.DecigramsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.Decigram), Delta);
6363
Assert.AreEqual(t.CentigramsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.Centigram), Delta);
6464
Assert.AreEqual(t.MilligramsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.Milligram), Delta);
65+
Assert.AreEqual(t.MicrogramsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.Microgram), Delta);
66+
Assert.AreEqual(t.NanogramsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.Nanogram), Delta);
6567
Assert.AreEqual(t.ShortTonsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.ShortTon), Delta);
6668
Assert.AreEqual(t.LongTonsInOneKilogram, UnitConverter.Convert(1, Unit.Kilogram, Unit.LongTon), Delta);
6769
}

0 commit comments

Comments
 (0)