From c4ba92bc55ea4a896a4e26f9d9680eb6c896940b Mon Sep 17 00:00:00 2001 From: Debra Lewis Date: Mon, 13 Oct 2025 10:59:53 -0400 Subject: [PATCH] Added Dalton (atomic mass unit) to mass units (updated tests, all passing). --- Common/UnitDefinitions/Mass.json | 20 ++- Common/UnitEnumValues.g.json | 6 +- Common/UnitRelations.json | 4 +- .../GeneratedCode/Quantities/Mass.g.cs | 48 +++++++ .../GeneratedCode/Units/MassUnit.g.cs | 9 ++ .../NumberToMassExtensionsTest.g.cs | 16 +++ .../GeneratedCode/NumberToMassExtensions.g.cs | 32 +++++ .../NumberToMassExtensionsTest.g.cs | 16 +++ .../GeneratedCode/NumberToMassExtensions.g.cs | 44 +++++++ UnitsNet.Tests/CustomCode/MassTests.cs | 6 +- .../TestsBase/MassTestsBase.g.cs | 120 ++++++++++++++++++ UnitsNet/GeneratedCode/Quantities/Mass.g.cs | 72 +++++++++++ UnitsNet/GeneratedCode/Resources/Mass.restext | 4 + UnitsNet/GeneratedCode/Units/MassUnit.g.cs | 9 ++ 14 files changed, 401 insertions(+), 5 deletions(-) diff --git a/Common/UnitDefinitions/Mass.json b/Common/UnitDefinitions/Mass.json index 711e3c53ce..1d50317003 100644 --- a/Common/UnitDefinitions/Mass.json +++ b/Common/UnitDefinitions/Mass.json @@ -271,6 +271,24 @@ "Abbreviations": [ "em" ] } ] - } + }, + { + "SingularName": "Dalton", + "PluralName": "Daltons", + "BaseUnits": { + "M": "Dalton" + }, + "XmlDocSummary": "The Dalton or unified atomic mass unit (abbreviation Da or u) is a unit of mass defined as 1/12 of the mass of an unbound neutral atom of carbon-12 in its nuclear and electronic ground state and at rest.", + "XmlDocRemarks": "https://en.wikipedia.org/wiki/Dalton_(unit)", + "FromUnitToBaseFunc": "{x} * 1.66053906660e-27", + "FromBaseToUnitFunc": "{x} / 1.66053906660e-27", + "Prefixes": [ "Kilo", "Mega" , "Giga" ], + "Localization": [ + { + "Culture": "en-US", + "Abbreviations": [ "Da", "u" ] + } + ] + }, ] } diff --git a/Common/UnitEnumValues.g.json b/Common/UnitEnumValues.g.json index 1df92d739e..5853f5c4a6 100644 --- a/Common/UnitEnumValues.g.json +++ b/Common/UnitEnumValues.g.json @@ -836,7 +836,11 @@ "Stone": 24, "Tonne": 25, "Femtogram": 35, - "Picogram": 29 + "Picogram": 29, + "Dalton": 37, + "Gigadalton": 33, + "Kilodalton": 26, + "Megadalton": 30 }, "MassConcentration": { "CentigramPerDeciliter": 1, diff --git a/Common/UnitRelations.json b/Common/UnitRelations.json index 2dea22c60a..bded89653c 100644 --- a/Common/UnitRelations.json +++ b/Common/UnitRelations.json @@ -13,8 +13,8 @@ "AreaMomentOfInertia.MeterToTheFourth = Volume.CubicMeter * Length.Meter", "double = SpecificEnergy.JoulePerKilogram * BrakeSpecificFuelConsumption.KilogramPerJoule", "DynamicViscosity.NewtonSecondPerMeterSquared = Density.KilogramPerCubicMeter * KinematicViscosity.SquareMeterPerSecond", - "ElectricCurrent.Ampere = ElectricCurrentGradient.AmperePerSecond * Duration.Second", "ElectricCharge.AmpereHour = ElectricCurrent.Ampere * Duration.Hour", + "ElectricCurrent.Ampere = ElectricCurrentGradient.AmperePerSecond * Duration.Second", "ElectricPotential.Volt = ElectricCurrent.Ampere * ElectricResistance.Ohm", "Energy.Joule = ElectricPotential.Volt * ElectricCharge.Coulomb", "Energy.Joule = EnergyDensity.JoulePerCubicMeter * Volume.CubicMeter", @@ -73,8 +73,8 @@ "SpecificEnergy.JoulePerKilogram = Speed.MeterPerSecond * Speed.MeterPerSecond", "SpecificWeight.NewtonPerCubicMeter = Acceleration.MeterPerSecondSquared * Density.KilogramPerCubicMeter", "Speed.MeterPerSecond = Acceleration.MeterPerSecondSquared * Duration.Second", - "TemperatureDelta.DegreeCelsius = TemperatureGradient.DegreeCelsiusPerKilometer * Length.Kilometer", "TemperatureDelta.DegreeCelsius = TemperatureChangeRate.DegreeCelsiusPerSecond * Duration.Second", + "TemperatureDelta.DegreeCelsius = TemperatureGradient.DegreeCelsiusPerKilometer * Length.Kilometer", "Torque.NewtonMeter = ForcePerLength.NewtonPerMeter * Area.SquareMeter", "Torque.NewtonMeter = Length.Meter * Force.Newton", "Torque.NewtonMeter = RotationalStiffness.NewtonMeterPerRadian * Angle.Radian", diff --git a/UnitsNet.NanoFramework/GeneratedCode/Quantities/Mass.g.cs b/UnitsNet.NanoFramework/GeneratedCode/Quantities/Mass.g.cs index 269a2950ee..1da423950f 100644 --- a/UnitsNet.NanoFramework/GeneratedCode/Quantities/Mass.g.cs +++ b/UnitsNet.NanoFramework/GeneratedCode/Quantities/Mass.g.cs @@ -83,6 +83,11 @@ public Mass(double value, MassUnit unit) /// public double Centigrams => As(MassUnit.Centigram); + /// + /// Gets a value of this quantity converted into + /// + public double Daltons => As(MassUnit.Dalton); + /// /// Gets a value of this quantity converted into /// @@ -103,6 +108,11 @@ public Mass(double value, MassUnit unit) /// public double Femtograms => As(MassUnit.Femtogram); + /// + /// Gets a value of this quantity converted into + /// + public double Gigadaltons => As(MassUnit.Gigadalton); + /// /// Gets a value of this quantity converted into /// @@ -118,6 +128,11 @@ public Mass(double value, MassUnit unit) /// public double Hectograms => As(MassUnit.Hectogram); + /// + /// Gets a value of this quantity converted into + /// + public double Kilodaltons => As(MassUnit.Kilodalton); + /// /// Gets a value of this quantity converted into /// @@ -143,6 +158,11 @@ public Mass(double value, MassUnit unit) /// public double LongTons => As(MassUnit.LongTon); + /// + /// Gets a value of this quantity converted into + /// + public double Megadaltons => As(MassUnit.Megadalton); + /// /// Gets a value of this quantity converted into /// @@ -222,6 +242,11 @@ public Mass(double value, MassUnit unit) /// public static Mass FromCentigrams(double centigrams) => new Mass(centigrams, MassUnit.Centigram); + /// + /// Creates a from . + /// + public static Mass FromDaltons(double daltons) => new Mass(daltons, MassUnit.Dalton); + /// /// Creates a from . /// @@ -242,6 +267,11 @@ public Mass(double value, MassUnit unit) /// public static Mass FromFemtograms(double femtograms) => new Mass(femtograms, MassUnit.Femtogram); + /// + /// Creates a from . + /// + public static Mass FromGigadaltons(double gigadaltons) => new Mass(gigadaltons, MassUnit.Gigadalton); + /// /// Creates a from . /// @@ -257,6 +287,11 @@ public Mass(double value, MassUnit unit) /// public static Mass FromHectograms(double hectograms) => new Mass(hectograms, MassUnit.Hectogram); + /// + /// Creates a from . + /// + public static Mass FromKilodaltons(double kilodaltons) => new Mass(kilodaltons, MassUnit.Kilodalton); + /// /// Creates a from . /// @@ -282,6 +317,11 @@ public Mass(double value, MassUnit unit) /// public static Mass FromLongTons(double longtons) => new Mass(longtons, MassUnit.LongTon); + /// + /// Creates a from . + /// + public static Mass FromMegadaltons(double megadaltons) => new Mass(megadaltons, MassUnit.Megadalton); + /// /// Creates a from . /// @@ -393,18 +433,22 @@ private double GetValueInBaseUnit() return Unit switch { MassUnit.Centigram => (_value / 1e3) * 1e-2d, + MassUnit.Dalton => _value * 1.66053906660e-27, MassUnit.Decagram => (_value / 1e3) * 1e1d, MassUnit.Decigram => (_value / 1e3) * 1e-1d, MassUnit.EarthMass => _value * 5.9722E+24, MassUnit.Femtogram => (_value / 1e3) * 1e-15d, + MassUnit.Gigadalton => (_value * 1.66053906660e-27) * 1e9d, MassUnit.Grain => _value * 64.79891e-6, MassUnit.Gram => _value / 1e3, MassUnit.Hectogram => (_value / 1e3) * 1e2d, + MassUnit.Kilodalton => (_value * 1.66053906660e-27) * 1e3d, MassUnit.Kilogram => (_value / 1e3) * 1e3d, MassUnit.Kilopound => (_value * 0.45359237) * 1e3d, MassUnit.Kilotonne => (_value * 1e3) * 1e3d, MassUnit.LongHundredweight => _value * 50.80234544, MassUnit.LongTon => _value * 1016.0469088, + MassUnit.Megadalton => (_value * 1.66053906660e-27) * 1e6d, MassUnit.Megapound => (_value * 0.45359237) * 1e6d, MassUnit.Megatonne => (_value * 1e3) * 1e6d, MassUnit.Microgram => (_value / 1e3) * 1e-6d, @@ -433,18 +477,22 @@ private double GetValueAs(MassUnit unit) return unit switch { MassUnit.Centigram => (baseUnitValue * 1e3) / 1e-2d, + MassUnit.Dalton => baseUnitValue / 1.66053906660e-27, MassUnit.Decagram => (baseUnitValue * 1e3) / 1e1d, MassUnit.Decigram => (baseUnitValue * 1e3) / 1e-1d, MassUnit.EarthMass => baseUnitValue / 5.9722E+24, MassUnit.Femtogram => (baseUnitValue * 1e3) / 1e-15d, + MassUnit.Gigadalton => (baseUnitValue / 1.66053906660e-27) / 1e9d, MassUnit.Grain => baseUnitValue / 64.79891e-6, MassUnit.Gram => baseUnitValue * 1e3, MassUnit.Hectogram => (baseUnitValue * 1e3) / 1e2d, + MassUnit.Kilodalton => (baseUnitValue / 1.66053906660e-27) / 1e3d, MassUnit.Kilogram => (baseUnitValue * 1e3) / 1e3d, MassUnit.Kilopound => (baseUnitValue / 0.45359237) / 1e3d, MassUnit.Kilotonne => (baseUnitValue / 1e3) / 1e3d, MassUnit.LongHundredweight => baseUnitValue / 50.80234544, MassUnit.LongTon => baseUnitValue / 1016.0469088, + MassUnit.Megadalton => (baseUnitValue / 1.66053906660e-27) / 1e6d, MassUnit.Megapound => (baseUnitValue / 0.45359237) / 1e6d, MassUnit.Megatonne => (baseUnitValue / 1e3) / 1e6d, MassUnit.Microgram => (baseUnitValue * 1e3) / 1e-6d, diff --git a/UnitsNet.NanoFramework/GeneratedCode/Units/MassUnit.g.cs b/UnitsNet.NanoFramework/GeneratedCode/Units/MassUnit.g.cs index 8bf661827e..55b385ee83 100644 --- a/UnitsNet.NanoFramework/GeneratedCode/Units/MassUnit.g.cs +++ b/UnitsNet.NanoFramework/GeneratedCode/Units/MassUnit.g.cs @@ -26,6 +26,12 @@ namespace UnitsNet.Units public enum MassUnit { Centigram = 1, + + /// + /// The Dalton or unified atomic mass unit (abbreviation Da or u) is a unit of mass defined as 1/12 of the mass of an unbound neutral atom of carbon-12 in its nuclear and electronic ground state and at rest. + /// + /// https://en.wikipedia.org/wiki/Dalton_(unit) + Dalton = 37, Decagram = 2, Decigram = 3, @@ -35,6 +41,7 @@ public enum MassUnit /// https://en.wikipedia.org/wiki/Earth_mass EarthMass = 4, Femtogram = 35, + Gigadalton = 33, /// /// A grain is a unit of measurement of mass, and in the troy weight, avoirdupois, and Apothecaries' system, equal to exactly 64.79891 milligrams. @@ -43,6 +50,7 @@ public enum MassUnit Grain = 5, Gram = 6, Hectogram = 7, + Kilodalton = 26, Kilogram = 8, Kilopound = 9, Kilotonne = 10, @@ -58,6 +66,7 @@ public enum MassUnit /// /// http://en.wikipedia.org/wiki/Long_ton LongTon = 12, + Megadalton = 30, Megapound = 13, Megatonne = 14, Microgram = 15, diff --git a/UnitsNet.NumberExtensions.CS14.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs b/UnitsNet.NumberExtensions.CS14.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs index 72e37c7716..0d23a5146b 100644 --- a/UnitsNet.NumberExtensions.CS14.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs +++ b/UnitsNet.NumberExtensions.CS14.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs @@ -28,6 +28,10 @@ public class NumberToMassExtensionsTests public void NumberToCentigramsTest() => Assert.Equal(Mass.FromCentigrams(2), 2.Centigrams); + [Fact] + public void NumberToDaltonsTest() => + Assert.Equal(Mass.FromDaltons(2), 2.Daltons); + [Fact] public void NumberToDecagramsTest() => Assert.Equal(Mass.FromDecagrams(2), 2.Decagrams); @@ -44,6 +48,10 @@ public void NumberToEarthMassesTest() => public void NumberToFemtogramsTest() => Assert.Equal(Mass.FromFemtograms(2), 2.Femtograms); + [Fact] + public void NumberToGigadaltonsTest() => + Assert.Equal(Mass.FromGigadaltons(2), 2.Gigadaltons); + [Fact] public void NumberToGrainsTest() => Assert.Equal(Mass.FromGrains(2), 2.Grains); @@ -56,6 +64,10 @@ public void NumberToGramsTest() => public void NumberToHectogramsTest() => Assert.Equal(Mass.FromHectograms(2), 2.Hectograms); + [Fact] + public void NumberToKilodaltonsTest() => + Assert.Equal(Mass.FromKilodaltons(2), 2.Kilodaltons); + [Fact] public void NumberToKilogramsTest() => Assert.Equal(Mass.FromKilograms(2), 2.Kilograms); @@ -76,6 +88,10 @@ public void NumberToLongHundredweightTest() => public void NumberToLongTonsTest() => Assert.Equal(Mass.FromLongTons(2), 2.LongTons); + [Fact] + public void NumberToMegadaltonsTest() => + Assert.Equal(Mass.FromMegadaltons(2), 2.Megadaltons); + [Fact] public void NumberToMegapoundsTest() => Assert.Equal(Mass.FromMegapounds(2), 2.Megapounds); diff --git a/UnitsNet.NumberExtensions.CS14/GeneratedCode/NumberToMassExtensions.g.cs b/UnitsNet.NumberExtensions.CS14/GeneratedCode/NumberToMassExtensions.g.cs index cd35f99541..27b3cfe78a 100644 --- a/UnitsNet.NumberExtensions.CS14/GeneratedCode/NumberToMassExtensions.g.cs +++ b/UnitsNet.NumberExtensions.CS14/GeneratedCode/NumberToMassExtensions.g.cs @@ -50,6 +50,14 @@ public Mass Centigrams => Mass.FromCentigrams(value.ToDouble(null)); #endif + /// + public Mass Daltons +#if NET7_0_OR_GREATER + => Mass.FromDaltons(double.CreateChecked(value)); +#else + => Mass.FromDaltons(value.ToDouble(null)); +#endif + /// public Mass Decagrams #if NET7_0_OR_GREATER @@ -82,6 +90,14 @@ public Mass Femtograms => Mass.FromFemtograms(value.ToDouble(null)); #endif + /// + public Mass Gigadaltons +#if NET7_0_OR_GREATER + => Mass.FromGigadaltons(double.CreateChecked(value)); +#else + => Mass.FromGigadaltons(value.ToDouble(null)); +#endif + /// public Mass Grains #if NET7_0_OR_GREATER @@ -106,6 +122,14 @@ public Mass Hectograms => Mass.FromHectograms(value.ToDouble(null)); #endif + /// + public Mass Kilodaltons +#if NET7_0_OR_GREATER + => Mass.FromKilodaltons(double.CreateChecked(value)); +#else + => Mass.FromKilodaltons(value.ToDouble(null)); +#endif + /// public Mass Kilograms #if NET7_0_OR_GREATER @@ -146,6 +170,14 @@ public Mass LongTons => Mass.FromLongTons(value.ToDouble(null)); #endif + /// + public Mass Megadaltons +#if NET7_0_OR_GREATER + => Mass.FromMegadaltons(double.CreateChecked(value)); +#else + => Mass.FromMegadaltons(value.ToDouble(null)); +#endif + /// public Mass Megapounds #if NET7_0_OR_GREATER diff --git a/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs b/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs index e4188777b8..31718fcf6b 100644 --- a/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs +++ b/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToMassExtensionsTest.g.cs @@ -28,6 +28,10 @@ public class NumberToMassExtensionsTests public void NumberToCentigramsTest() => Assert.Equal(Mass.FromCentigrams(2), 2.Centigrams()); + [Fact] + public void NumberToDaltonsTest() => + Assert.Equal(Mass.FromDaltons(2), 2.Daltons()); + [Fact] public void NumberToDecagramsTest() => Assert.Equal(Mass.FromDecagrams(2), 2.Decagrams()); @@ -44,6 +48,10 @@ public void NumberToEarthMassesTest() => public void NumberToFemtogramsTest() => Assert.Equal(Mass.FromFemtograms(2), 2.Femtograms()); + [Fact] + public void NumberToGigadaltonsTest() => + Assert.Equal(Mass.FromGigadaltons(2), 2.Gigadaltons()); + [Fact] public void NumberToGrainsTest() => Assert.Equal(Mass.FromGrains(2), 2.Grains()); @@ -56,6 +64,10 @@ public void NumberToGramsTest() => public void NumberToHectogramsTest() => Assert.Equal(Mass.FromHectograms(2), 2.Hectograms()); + [Fact] + public void NumberToKilodaltonsTest() => + Assert.Equal(Mass.FromKilodaltons(2), 2.Kilodaltons()); + [Fact] public void NumberToKilogramsTest() => Assert.Equal(Mass.FromKilograms(2), 2.Kilograms()); @@ -76,6 +88,10 @@ public void NumberToLongHundredweightTest() => public void NumberToLongTonsTest() => Assert.Equal(Mass.FromLongTons(2), 2.LongTons()); + [Fact] + public void NumberToMegadaltonsTest() => + Assert.Equal(Mass.FromMegadaltons(2), 2.Megadaltons()); + [Fact] public void NumberToMegapoundsTest() => Assert.Equal(Mass.FromMegapounds(2), 2.Megapounds()); diff --git a/UnitsNet.NumberExtensions/GeneratedCode/NumberToMassExtensions.g.cs b/UnitsNet.NumberExtensions/GeneratedCode/NumberToMassExtensions.g.cs index ea55f84c4d..ea9af0c243 100644 --- a/UnitsNet.NumberExtensions/GeneratedCode/NumberToMassExtensions.g.cs +++ b/UnitsNet.NumberExtensions/GeneratedCode/NumberToMassExtensions.g.cs @@ -43,6 +43,17 @@ public static Mass Centigrams(this T value) => Mass.FromCentigrams(value.ToDouble(null)); #endif + /// + public static Mass Daltons(this T value) + where T : notnull +#if NET7_0_OR_GREATER + , INumber + => Mass.FromDaltons(double.CreateChecked(value)); +#else + , IConvertible + => Mass.FromDaltons(value.ToDouble(null)); +#endif + /// public static Mass Decagrams(this T value) where T : notnull @@ -87,6 +98,17 @@ public static Mass Femtograms(this T value) => Mass.FromFemtograms(value.ToDouble(null)); #endif + /// + public static Mass Gigadaltons(this T value) + where T : notnull +#if NET7_0_OR_GREATER + , INumber + => Mass.FromGigadaltons(double.CreateChecked(value)); +#else + , IConvertible + => Mass.FromGigadaltons(value.ToDouble(null)); +#endif + /// public static Mass Grains(this T value) where T : notnull @@ -120,6 +142,17 @@ public static Mass Hectograms(this T value) => Mass.FromHectograms(value.ToDouble(null)); #endif + /// + public static Mass Kilodaltons(this T value) + where T : notnull +#if NET7_0_OR_GREATER + , INumber + => Mass.FromKilodaltons(double.CreateChecked(value)); +#else + , IConvertible + => Mass.FromKilodaltons(value.ToDouble(null)); +#endif + /// public static Mass Kilograms(this T value) where T : notnull @@ -175,6 +208,17 @@ public static Mass LongTons(this T value) => Mass.FromLongTons(value.ToDouble(null)); #endif + /// + public static Mass Megadaltons(this T value) + where T : notnull +#if NET7_0_OR_GREATER + , INumber + => Mass.FromMegadaltons(double.CreateChecked(value)); +#else + , IConvertible + => Mass.FromMegadaltons(value.ToDouble(null)); +#endif + /// public static Mass Megapounds(this T value) where T : notnull diff --git a/UnitsNet.Tests/CustomCode/MassTests.cs b/UnitsNet.Tests/CustomCode/MassTests.cs index da6e963915..5a8ce60e5d 100644 --- a/UnitsNet.Tests/CustomCode/MassTests.cs +++ b/UnitsNet.Tests/CustomCode/MassTests.cs @@ -64,7 +64,11 @@ public class MassTests : MassTestsBase protected override double FemtogramsInOneKilogram => 1E18; protected override double PicogramsInOneKilogram => 1E15; - + protected override double DaltonsInOneKilogram => 6.022140762081123E+26; + protected override double KilodaltonsInOneKilogram => 6.022140762081123E+23; + protected override double MegadaltonsInOneKilogram => 6.022140762081123E+20; + protected override double GigadaltonsInOneKilogram => 6.022140762081123E+17; + [Fact] public void AllBaseQuantityUnitsAreBaseUnits() { diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs index 1e75b909f7..fd4e45305a 100644 --- a/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/TestsBase/MassTestsBase.g.cs @@ -41,18 +41,22 @@ namespace UnitsNet.Tests public abstract partial class MassTestsBase : QuantityTestsBase { protected abstract double CentigramsInOneKilogram { get; } + protected abstract double DaltonsInOneKilogram { get; } protected abstract double DecagramsInOneKilogram { get; } protected abstract double DecigramsInOneKilogram { get; } protected abstract double EarthMassesInOneKilogram { get; } protected abstract double FemtogramsInOneKilogram { get; } + protected abstract double GigadaltonsInOneKilogram { get; } protected abstract double GrainsInOneKilogram { get; } protected abstract double GramsInOneKilogram { get; } protected abstract double HectogramsInOneKilogram { get; } + protected abstract double KilodaltonsInOneKilogram { get; } protected abstract double KilogramsInOneKilogram { get; } protected abstract double KilopoundsInOneKilogram { get; } protected abstract double KilotonnesInOneKilogram { get; } protected abstract double LongHundredweightInOneKilogram { get; } protected abstract double LongTonsInOneKilogram { get; } + protected abstract double MegadaltonsInOneKilogram { get; } protected abstract double MegapoundsInOneKilogram { get; } protected abstract double MegatonnesInOneKilogram { get; } protected abstract double MicrogramsInOneKilogram { get; } @@ -70,18 +74,22 @@ public abstract partial class MassTestsBase : QuantityTestsBase // ReSharper disable VirtualMemberNeverOverriden.Global protected virtual double CentigramsTolerance { get { return 1e-5; } } + protected virtual double DaltonsTolerance { get { return 1e-5; } } protected virtual double DecagramsTolerance { get { return 1e-5; } } protected virtual double DecigramsTolerance { get { return 1e-5; } } protected virtual double EarthMassesTolerance { get { return 1e-5; } } protected virtual double FemtogramsTolerance { get { return 1e-5; } } + protected virtual double GigadaltonsTolerance { get { return 1e-5; } } protected virtual double GrainsTolerance { get { return 1e-5; } } protected virtual double GramsTolerance { get { return 1e-5; } } protected virtual double HectogramsTolerance { get { return 1e-5; } } + protected virtual double KilodaltonsTolerance { get { return 1e-5; } } protected virtual double KilogramsTolerance { get { return 1e-5; } } protected virtual double KilopoundsTolerance { get { return 1e-5; } } protected virtual double KilotonnesTolerance { get { return 1e-5; } } protected virtual double LongHundredweightTolerance { get { return 1e-5; } } protected virtual double LongTonsTolerance { get { return 1e-5; } } + protected virtual double MegadaltonsTolerance { get { return 1e-5; } } protected virtual double MegapoundsTolerance { get { return 1e-5; } } protected virtual double MegatonnesTolerance { get { return 1e-5; } } protected virtual double MicrogramsTolerance { get { return 1e-5; } } @@ -103,18 +111,22 @@ public abstract partial class MassTestsBase : QuantityTestsBase return unit switch { MassUnit.Centigram => (CentigramsInOneKilogram, CentigramsTolerance), + MassUnit.Dalton => (DaltonsInOneKilogram, DaltonsTolerance), MassUnit.Decagram => (DecagramsInOneKilogram, DecagramsTolerance), MassUnit.Decigram => (DecigramsInOneKilogram, DecigramsTolerance), MassUnit.EarthMass => (EarthMassesInOneKilogram, EarthMassesTolerance), MassUnit.Femtogram => (FemtogramsInOneKilogram, FemtogramsTolerance), + MassUnit.Gigadalton => (GigadaltonsInOneKilogram, GigadaltonsTolerance), MassUnit.Grain => (GrainsInOneKilogram, GrainsTolerance), MassUnit.Gram => (GramsInOneKilogram, GramsTolerance), MassUnit.Hectogram => (HectogramsInOneKilogram, HectogramsTolerance), + MassUnit.Kilodalton => (KilodaltonsInOneKilogram, KilodaltonsTolerance), MassUnit.Kilogram => (KilogramsInOneKilogram, KilogramsTolerance), MassUnit.Kilopound => (KilopoundsInOneKilogram, KilopoundsTolerance), MassUnit.Kilotonne => (KilotonnesInOneKilogram, KilotonnesTolerance), MassUnit.LongHundredweight => (LongHundredweightInOneKilogram, LongHundredweightTolerance), MassUnit.LongTon => (LongTonsInOneKilogram, LongTonsTolerance), + MassUnit.Megadalton => (MegadaltonsInOneKilogram, MegadaltonsTolerance), MassUnit.Megapound => (MegapoundsInOneKilogram, MegapoundsTolerance), MassUnit.Megatonne => (MegatonnesInOneKilogram, MegatonnesTolerance), MassUnit.Microgram => (MicrogramsInOneKilogram, MicrogramsTolerance), @@ -136,18 +148,22 @@ public abstract partial class MassTestsBase : QuantityTestsBase public static IEnumerable UnitTypes = new List { new object[] { MassUnit.Centigram }, + new object[] { MassUnit.Dalton }, new object[] { MassUnit.Decagram }, new object[] { MassUnit.Decigram }, new object[] { MassUnit.EarthMass }, new object[] { MassUnit.Femtogram }, + new object[] { MassUnit.Gigadalton }, new object[] { MassUnit.Grain }, new object[] { MassUnit.Gram }, new object[] { MassUnit.Hectogram }, + new object[] { MassUnit.Kilodalton }, new object[] { MassUnit.Kilogram }, new object[] { MassUnit.Kilopound }, new object[] { MassUnit.Kilotonne }, new object[] { MassUnit.LongHundredweight }, new object[] { MassUnit.LongTon }, + new object[] { MassUnit.Megadalton }, new object[] { MassUnit.Megapound }, new object[] { MassUnit.Megatonne }, new object[] { MassUnit.Microgram }, @@ -234,18 +250,22 @@ public void KilogramToMassUnits() { Mass kilogram = Mass.FromKilograms(1); AssertEx.EqualTolerance(CentigramsInOneKilogram, kilogram.Centigrams, CentigramsTolerance); + AssertEx.EqualTolerance(DaltonsInOneKilogram, kilogram.Daltons, DaltonsTolerance); AssertEx.EqualTolerance(DecagramsInOneKilogram, kilogram.Decagrams, DecagramsTolerance); AssertEx.EqualTolerance(DecigramsInOneKilogram, kilogram.Decigrams, DecigramsTolerance); AssertEx.EqualTolerance(EarthMassesInOneKilogram, kilogram.EarthMasses, EarthMassesTolerance); AssertEx.EqualTolerance(FemtogramsInOneKilogram, kilogram.Femtograms, FemtogramsTolerance); + AssertEx.EqualTolerance(GigadaltonsInOneKilogram, kilogram.Gigadaltons, GigadaltonsTolerance); AssertEx.EqualTolerance(GrainsInOneKilogram, kilogram.Grains, GrainsTolerance); AssertEx.EqualTolerance(GramsInOneKilogram, kilogram.Grams, GramsTolerance); AssertEx.EqualTolerance(HectogramsInOneKilogram, kilogram.Hectograms, HectogramsTolerance); + AssertEx.EqualTolerance(KilodaltonsInOneKilogram, kilogram.Kilodaltons, KilodaltonsTolerance); AssertEx.EqualTolerance(KilogramsInOneKilogram, kilogram.Kilograms, KilogramsTolerance); AssertEx.EqualTolerance(KilopoundsInOneKilogram, kilogram.Kilopounds, KilopoundsTolerance); AssertEx.EqualTolerance(KilotonnesInOneKilogram, kilogram.Kilotonnes, KilotonnesTolerance); AssertEx.EqualTolerance(LongHundredweightInOneKilogram, kilogram.LongHundredweight, LongHundredweightTolerance); AssertEx.EqualTolerance(LongTonsInOneKilogram, kilogram.LongTons, LongTonsTolerance); + AssertEx.EqualTolerance(MegadaltonsInOneKilogram, kilogram.Megadaltons, MegadaltonsTolerance); AssertEx.EqualTolerance(MegapoundsInOneKilogram, kilogram.Megapounds, MegapoundsTolerance); AssertEx.EqualTolerance(MegatonnesInOneKilogram, kilogram.Megatonnes, MegatonnesTolerance); AssertEx.EqualTolerance(MicrogramsInOneKilogram, kilogram.Micrograms, MicrogramsTolerance); @@ -296,18 +316,22 @@ public void As() { var kilogram = Mass.FromKilograms(1); AssertEx.EqualTolerance(CentigramsInOneKilogram, kilogram.As(MassUnit.Centigram), CentigramsTolerance); + AssertEx.EqualTolerance(DaltonsInOneKilogram, kilogram.As(MassUnit.Dalton), DaltonsTolerance); AssertEx.EqualTolerance(DecagramsInOneKilogram, kilogram.As(MassUnit.Decagram), DecagramsTolerance); AssertEx.EqualTolerance(DecigramsInOneKilogram, kilogram.As(MassUnit.Decigram), DecigramsTolerance); AssertEx.EqualTolerance(EarthMassesInOneKilogram, kilogram.As(MassUnit.EarthMass), EarthMassesTolerance); AssertEx.EqualTolerance(FemtogramsInOneKilogram, kilogram.As(MassUnit.Femtogram), FemtogramsTolerance); + AssertEx.EqualTolerance(GigadaltonsInOneKilogram, kilogram.As(MassUnit.Gigadalton), GigadaltonsTolerance); AssertEx.EqualTolerance(GrainsInOneKilogram, kilogram.As(MassUnit.Grain), GrainsTolerance); AssertEx.EqualTolerance(GramsInOneKilogram, kilogram.As(MassUnit.Gram), GramsTolerance); AssertEx.EqualTolerance(HectogramsInOneKilogram, kilogram.As(MassUnit.Hectogram), HectogramsTolerance); + AssertEx.EqualTolerance(KilodaltonsInOneKilogram, kilogram.As(MassUnit.Kilodalton), KilodaltonsTolerance); AssertEx.EqualTolerance(KilogramsInOneKilogram, kilogram.As(MassUnit.Kilogram), KilogramsTolerance); AssertEx.EqualTolerance(KilopoundsInOneKilogram, kilogram.As(MassUnit.Kilopound), KilopoundsTolerance); AssertEx.EqualTolerance(KilotonnesInOneKilogram, kilogram.As(MassUnit.Kilotonne), KilotonnesTolerance); AssertEx.EqualTolerance(LongHundredweightInOneKilogram, kilogram.As(MassUnit.LongHundredweight), LongHundredweightTolerance); AssertEx.EqualTolerance(LongTonsInOneKilogram, kilogram.As(MassUnit.LongTon), LongTonsTolerance); + AssertEx.EqualTolerance(MegadaltonsInOneKilogram, kilogram.As(MassUnit.Megadalton), MegadaltonsTolerance); AssertEx.EqualTolerance(MegapoundsInOneKilogram, kilogram.As(MassUnit.Megapound), MegapoundsTolerance); AssertEx.EqualTolerance(MegatonnesInOneKilogram, kilogram.As(MassUnit.Megatonne), MegatonnesTolerance); AssertEx.EqualTolerance(MicrogramsInOneKilogram, kilogram.As(MassUnit.Microgram), MicrogramsTolerance); @@ -389,19 +413,27 @@ public void ToUnit_UnitSystem_ThrowsArgumentExceptionIfNotSupported() [Theory] [InlineData("en-US", "4.2 cg", MassUnit.Centigram, 4.2)] + [InlineData("en-US", "4.2 Da", MassUnit.Dalton, 4.2)] + [InlineData("en-US", "4.2 u", MassUnit.Dalton, 4.2)] [InlineData("en-US", "4.2 dag", MassUnit.Decagram, 4.2)] [InlineData("en-US", "4.2 dg", MassUnit.Decigram, 4.2)] [InlineData("en-US", "4.2 em", MassUnit.EarthMass, 4.2)] [InlineData("en-US", "4.2 fg", MassUnit.Femtogram, 4.2)] + [InlineData("en-US", "4.2 GDa", MassUnit.Gigadalton, 4.2)] + [InlineData("en-US", "4.2 Gu", MassUnit.Gigadalton, 4.2)] [InlineData("en-US", "4.2 gr", MassUnit.Grain, 4.2)] [InlineData("en-US", "4.2 g", MassUnit.Gram, 4.2)] [InlineData("en-US", "4.2 hg", MassUnit.Hectogram, 4.2)] + [InlineData("en-US", "4.2 kDa", MassUnit.Kilodalton, 4.2)] + [InlineData("en-US", "4.2 ku", MassUnit.Kilodalton, 4.2)] [InlineData("en-US", "4.2 kg", MassUnit.Kilogram, 4.2)] [InlineData("en-US", "4.2 klb", MassUnit.Kilopound, 4.2)] [InlineData("en-US", "4.2 klbs", MassUnit.Kilopound, 4.2)] [InlineData("en-US", "4.2 klbm", MassUnit.Kilopound, 4.2)] [InlineData("en-US", "4.2 kt", MassUnit.Kilotonne, 4.2)] [InlineData("en-US", "4.2 long tn", MassUnit.LongTon, 4.2)] + [InlineData("en-US", "4.2 MDa", MassUnit.Megadalton, 4.2)] + [InlineData("en-US", "4.2 Mu", MassUnit.Megadalton, 4.2)] [InlineData("en-US", "4.2 Mlb", MassUnit.Megapound, 4.2)] [InlineData("en-US", "4.2 Mlbs", MassUnit.Megapound, 4.2)] [InlineData("en-US", "4.2 Mlbm", MassUnit.Megapound, 4.2)] @@ -478,19 +510,27 @@ public void ParseWithAmbiguousAbbreviation(string culture, string quantityString [Theory] [InlineData("en-US", "4.2 cg", MassUnit.Centigram, 4.2)] + [InlineData("en-US", "4.2 Da", MassUnit.Dalton, 4.2)] + [InlineData("en-US", "4.2 u", MassUnit.Dalton, 4.2)] [InlineData("en-US", "4.2 dag", MassUnit.Decagram, 4.2)] [InlineData("en-US", "4.2 dg", MassUnit.Decigram, 4.2)] [InlineData("en-US", "4.2 em", MassUnit.EarthMass, 4.2)] [InlineData("en-US", "4.2 fg", MassUnit.Femtogram, 4.2)] + [InlineData("en-US", "4.2 GDa", MassUnit.Gigadalton, 4.2)] + [InlineData("en-US", "4.2 Gu", MassUnit.Gigadalton, 4.2)] [InlineData("en-US", "4.2 gr", MassUnit.Grain, 4.2)] [InlineData("en-US", "4.2 g", MassUnit.Gram, 4.2)] [InlineData("en-US", "4.2 hg", MassUnit.Hectogram, 4.2)] + [InlineData("en-US", "4.2 kDa", MassUnit.Kilodalton, 4.2)] + [InlineData("en-US", "4.2 ku", MassUnit.Kilodalton, 4.2)] [InlineData("en-US", "4.2 kg", MassUnit.Kilogram, 4.2)] [InlineData("en-US", "4.2 klb", MassUnit.Kilopound, 4.2)] [InlineData("en-US", "4.2 klbs", MassUnit.Kilopound, 4.2)] [InlineData("en-US", "4.2 klbm", MassUnit.Kilopound, 4.2)] [InlineData("en-US", "4.2 kt", MassUnit.Kilotonne, 4.2)] [InlineData("en-US", "4.2 long tn", MassUnit.LongTon, 4.2)] + [InlineData("en-US", "4.2 MDa", MassUnit.Megadalton, 4.2)] + [InlineData("en-US", "4.2 Mu", MassUnit.Megadalton, 4.2)] [InlineData("en-US", "4.2 Mlb", MassUnit.Megapound, 4.2)] [InlineData("en-US", "4.2 Mlbs", MassUnit.Megapound, 4.2)] [InlineData("en-US", "4.2 Mlbm", MassUnit.Megapound, 4.2)] @@ -567,19 +607,27 @@ public void TryParseWithAmbiguousAbbreviation(string culture, string quantityStr [Theory] [InlineData("cg", MassUnit.Centigram)] + [InlineData("Da", MassUnit.Dalton)] + [InlineData("u", MassUnit.Dalton)] [InlineData("dag", MassUnit.Decagram)] [InlineData("dg", MassUnit.Decigram)] [InlineData("em", MassUnit.EarthMass)] [InlineData("fg", MassUnit.Femtogram)] + [InlineData("GDa", MassUnit.Gigadalton)] + [InlineData("Gu", MassUnit.Gigadalton)] [InlineData("gr", MassUnit.Grain)] [InlineData("g", MassUnit.Gram)] [InlineData("hg", MassUnit.Hectogram)] + [InlineData("kDa", MassUnit.Kilodalton)] + [InlineData("ku", MassUnit.Kilodalton)] [InlineData("kg", MassUnit.Kilogram)] [InlineData("klb", MassUnit.Kilopound)] [InlineData("klbs", MassUnit.Kilopound)] [InlineData("klbm", MassUnit.Kilopound)] [InlineData("kt", MassUnit.Kilotonne)] [InlineData("long tn", MassUnit.LongTon)] + [InlineData("MDa", MassUnit.Megadalton)] + [InlineData("Mu", MassUnit.Megadalton)] [InlineData("Mlb", MassUnit.Megapound)] [InlineData("Mlbs", MassUnit.Megapound)] [InlineData("Mlbm", MassUnit.Megapound)] @@ -610,19 +658,27 @@ public void ParseUnit_WithUsEnglishCurrentCulture(string abbreviation, MassUnit [Theory] [InlineData("cg", MassUnit.Centigram)] + [InlineData("Da", MassUnit.Dalton)] + [InlineData("u", MassUnit.Dalton)] [InlineData("dag", MassUnit.Decagram)] [InlineData("dg", MassUnit.Decigram)] [InlineData("em", MassUnit.EarthMass)] [InlineData("fg", MassUnit.Femtogram)] + [InlineData("GDa", MassUnit.Gigadalton)] + [InlineData("Gu", MassUnit.Gigadalton)] [InlineData("gr", MassUnit.Grain)] [InlineData("g", MassUnit.Gram)] [InlineData("hg", MassUnit.Hectogram)] + [InlineData("kDa", MassUnit.Kilodalton)] + [InlineData("ku", MassUnit.Kilodalton)] [InlineData("kg", MassUnit.Kilogram)] [InlineData("klb", MassUnit.Kilopound)] [InlineData("klbs", MassUnit.Kilopound)] [InlineData("klbm", MassUnit.Kilopound)] [InlineData("kt", MassUnit.Kilotonne)] [InlineData("long tn", MassUnit.LongTon)] + [InlineData("MDa", MassUnit.Megadalton)] + [InlineData("Mu", MassUnit.Megadalton)] [InlineData("Mlb", MassUnit.Megapound)] [InlineData("Mlbs", MassUnit.Megapound)] [InlineData("Mlbm", MassUnit.Megapound)] @@ -653,19 +709,27 @@ public void ParseUnit_WithUnsupportedCurrentCulture_FallsBackToUsEnglish(string [Theory] [InlineData("en-US", "cg", MassUnit.Centigram)] + [InlineData("en-US", "Da", MassUnit.Dalton)] + [InlineData("en-US", "u", MassUnit.Dalton)] [InlineData("en-US", "dag", MassUnit.Decagram)] [InlineData("en-US", "dg", MassUnit.Decigram)] [InlineData("en-US", "em", MassUnit.EarthMass)] [InlineData("en-US", "fg", MassUnit.Femtogram)] + [InlineData("en-US", "GDa", MassUnit.Gigadalton)] + [InlineData("en-US", "Gu", MassUnit.Gigadalton)] [InlineData("en-US", "gr", MassUnit.Grain)] [InlineData("en-US", "g", MassUnit.Gram)] [InlineData("en-US", "hg", MassUnit.Hectogram)] + [InlineData("en-US", "kDa", MassUnit.Kilodalton)] + [InlineData("en-US", "ku", MassUnit.Kilodalton)] [InlineData("en-US", "kg", MassUnit.Kilogram)] [InlineData("en-US", "klb", MassUnit.Kilopound)] [InlineData("en-US", "klbs", MassUnit.Kilopound)] [InlineData("en-US", "klbm", MassUnit.Kilopound)] [InlineData("en-US", "kt", MassUnit.Kilotonne)] [InlineData("en-US", "long tn", MassUnit.LongTon)] + [InlineData("en-US", "MDa", MassUnit.Megadalton)] + [InlineData("en-US", "Mu", MassUnit.Megadalton)] [InlineData("en-US", "Mlb", MassUnit.Megapound)] [InlineData("en-US", "Mlbs", MassUnit.Megapound)] [InlineData("en-US", "Mlbm", MassUnit.Megapound)] @@ -734,19 +798,27 @@ public void ParseUnit_WithCurrentCulture(string culture, string abbreviation, Ma [Theory] [InlineData("en-US", "cg", MassUnit.Centigram)] + [InlineData("en-US", "Da", MassUnit.Dalton)] + [InlineData("en-US", "u", MassUnit.Dalton)] [InlineData("en-US", "dag", MassUnit.Decagram)] [InlineData("en-US", "dg", MassUnit.Decigram)] [InlineData("en-US", "em", MassUnit.EarthMass)] [InlineData("en-US", "fg", MassUnit.Femtogram)] + [InlineData("en-US", "GDa", MassUnit.Gigadalton)] + [InlineData("en-US", "Gu", MassUnit.Gigadalton)] [InlineData("en-US", "gr", MassUnit.Grain)] [InlineData("en-US", "g", MassUnit.Gram)] [InlineData("en-US", "hg", MassUnit.Hectogram)] + [InlineData("en-US", "kDa", MassUnit.Kilodalton)] + [InlineData("en-US", "ku", MassUnit.Kilodalton)] [InlineData("en-US", "kg", MassUnit.Kilogram)] [InlineData("en-US", "klb", MassUnit.Kilopound)] [InlineData("en-US", "klbs", MassUnit.Kilopound)] [InlineData("en-US", "klbm", MassUnit.Kilopound)] [InlineData("en-US", "kt", MassUnit.Kilotonne)] [InlineData("en-US", "long tn", MassUnit.LongTon)] + [InlineData("en-US", "MDa", MassUnit.Megadalton)] + [InlineData("en-US", "Mu", MassUnit.Megadalton)] [InlineData("en-US", "Mlb", MassUnit.Megapound)] [InlineData("en-US", "Mlbs", MassUnit.Megapound)] [InlineData("en-US", "Mlbm", MassUnit.Megapound)] @@ -821,19 +893,27 @@ public void ParseUnitWithAmbiguousAbbreviation(string culture, string abbreviati [Theory] [InlineData("cg", MassUnit.Centigram)] + [InlineData("Da", MassUnit.Dalton)] + [InlineData("u", MassUnit.Dalton)] [InlineData("dag", MassUnit.Decagram)] [InlineData("dg", MassUnit.Decigram)] [InlineData("em", MassUnit.EarthMass)] [InlineData("fg", MassUnit.Femtogram)] + [InlineData("GDa", MassUnit.Gigadalton)] + [InlineData("Gu", MassUnit.Gigadalton)] [InlineData("gr", MassUnit.Grain)] [InlineData("g", MassUnit.Gram)] [InlineData("hg", MassUnit.Hectogram)] + [InlineData("kDa", MassUnit.Kilodalton)] + [InlineData("ku", MassUnit.Kilodalton)] [InlineData("kg", MassUnit.Kilogram)] [InlineData("klb", MassUnit.Kilopound)] [InlineData("klbs", MassUnit.Kilopound)] [InlineData("klbm", MassUnit.Kilopound)] [InlineData("kt", MassUnit.Kilotonne)] [InlineData("long tn", MassUnit.LongTon)] + [InlineData("MDa", MassUnit.Megadalton)] + [InlineData("Mu", MassUnit.Megadalton)] [InlineData("Mlb", MassUnit.Megapound)] [InlineData("Mlbs", MassUnit.Megapound)] [InlineData("Mlbm", MassUnit.Megapound)] @@ -864,19 +944,27 @@ public void TryParseUnit_WithUsEnglishCurrentCulture(string abbreviation, MassUn [Theory] [InlineData("cg", MassUnit.Centigram)] + [InlineData("Da", MassUnit.Dalton)] + [InlineData("u", MassUnit.Dalton)] [InlineData("dag", MassUnit.Decagram)] [InlineData("dg", MassUnit.Decigram)] [InlineData("em", MassUnit.EarthMass)] [InlineData("fg", MassUnit.Femtogram)] + [InlineData("GDa", MassUnit.Gigadalton)] + [InlineData("Gu", MassUnit.Gigadalton)] [InlineData("gr", MassUnit.Grain)] [InlineData("g", MassUnit.Gram)] [InlineData("hg", MassUnit.Hectogram)] + [InlineData("kDa", MassUnit.Kilodalton)] + [InlineData("ku", MassUnit.Kilodalton)] [InlineData("kg", MassUnit.Kilogram)] [InlineData("klb", MassUnit.Kilopound)] [InlineData("klbs", MassUnit.Kilopound)] [InlineData("klbm", MassUnit.Kilopound)] [InlineData("kt", MassUnit.Kilotonne)] [InlineData("long tn", MassUnit.LongTon)] + [InlineData("MDa", MassUnit.Megadalton)] + [InlineData("Mu", MassUnit.Megadalton)] [InlineData("Mlb", MassUnit.Megapound)] [InlineData("Mlbs", MassUnit.Megapound)] [InlineData("Mlbm", MassUnit.Megapound)] @@ -907,19 +995,27 @@ public void TryParseUnit_WithUnsupportedCurrentCulture_FallsBackToUsEnglish(stri [Theory] [InlineData("en-US", "cg", MassUnit.Centigram)] + [InlineData("en-US", "Da", MassUnit.Dalton)] + [InlineData("en-US", "u", MassUnit.Dalton)] [InlineData("en-US", "dag", MassUnit.Decagram)] [InlineData("en-US", "dg", MassUnit.Decigram)] [InlineData("en-US", "em", MassUnit.EarthMass)] [InlineData("en-US", "fg", MassUnit.Femtogram)] + [InlineData("en-US", "GDa", MassUnit.Gigadalton)] + [InlineData("en-US", "Gu", MassUnit.Gigadalton)] [InlineData("en-US", "gr", MassUnit.Grain)] [InlineData("en-US", "g", MassUnit.Gram)] [InlineData("en-US", "hg", MassUnit.Hectogram)] + [InlineData("en-US", "kDa", MassUnit.Kilodalton)] + [InlineData("en-US", "ku", MassUnit.Kilodalton)] [InlineData("en-US", "kg", MassUnit.Kilogram)] [InlineData("en-US", "klb", MassUnit.Kilopound)] [InlineData("en-US", "klbs", MassUnit.Kilopound)] [InlineData("en-US", "klbm", MassUnit.Kilopound)] [InlineData("en-US", "kt", MassUnit.Kilotonne)] [InlineData("en-US", "long tn", MassUnit.LongTon)] + [InlineData("en-US", "MDa", MassUnit.Megadalton)] + [InlineData("en-US", "Mu", MassUnit.Megadalton)] [InlineData("en-US", "Mlb", MassUnit.Megapound)] [InlineData("en-US", "Mlbs", MassUnit.Megapound)] [InlineData("en-US", "Mlbm", MassUnit.Megapound)] @@ -988,19 +1084,27 @@ public void TryParseUnit_WithCurrentCulture(string culture, string abbreviation, [Theory] [InlineData("en-US", "cg", MassUnit.Centigram)] + [InlineData("en-US", "Da", MassUnit.Dalton)] + [InlineData("en-US", "u", MassUnit.Dalton)] [InlineData("en-US", "dag", MassUnit.Decagram)] [InlineData("en-US", "dg", MassUnit.Decigram)] [InlineData("en-US", "em", MassUnit.EarthMass)] [InlineData("en-US", "fg", MassUnit.Femtogram)] + [InlineData("en-US", "GDa", MassUnit.Gigadalton)] + [InlineData("en-US", "Gu", MassUnit.Gigadalton)] [InlineData("en-US", "gr", MassUnit.Grain)] [InlineData("en-US", "g", MassUnit.Gram)] [InlineData("en-US", "hg", MassUnit.Hectogram)] + [InlineData("en-US", "kDa", MassUnit.Kilodalton)] + [InlineData("en-US", "ku", MassUnit.Kilodalton)] [InlineData("en-US", "kg", MassUnit.Kilogram)] [InlineData("en-US", "klb", MassUnit.Kilopound)] [InlineData("en-US", "klbs", MassUnit.Kilopound)] [InlineData("en-US", "klbm", MassUnit.Kilopound)] [InlineData("en-US", "kt", MassUnit.Kilotonne)] [InlineData("en-US", "long tn", MassUnit.LongTon)] + [InlineData("en-US", "MDa", MassUnit.Megadalton)] + [InlineData("en-US", "Mu", MassUnit.Megadalton)] [InlineData("en-US", "Mlb", MassUnit.Megapound)] [InlineData("en-US", "Mlbs", MassUnit.Megapound)] [InlineData("en-US", "Mlbm", MassUnit.Megapound)] @@ -1075,18 +1179,22 @@ public void TryParseUnitWithAmbiguousAbbreviation(string culture, string abbrevi [Theory] [InlineData("en-US", MassUnit.Centigram, "cg")] + [InlineData("en-US", MassUnit.Dalton, "Da")] [InlineData("en-US", MassUnit.Decagram, "dag")] [InlineData("en-US", MassUnit.Decigram, "dg")] [InlineData("en-US", MassUnit.EarthMass, "em")] [InlineData("en-US", MassUnit.Femtogram, "fg")] + [InlineData("en-US", MassUnit.Gigadalton, "GDa")] [InlineData("en-US", MassUnit.Grain, "gr")] [InlineData("en-US", MassUnit.Gram, "g")] [InlineData("en-US", MassUnit.Hectogram, "hg")] + [InlineData("en-US", MassUnit.Kilodalton, "kDa")] [InlineData("en-US", MassUnit.Kilogram, "kg")] [InlineData("en-US", MassUnit.Kilopound, "klb")] [InlineData("en-US", MassUnit.Kilotonne, "kt")] [InlineData("en-US", MassUnit.LongHundredweight, "cwt")] [InlineData("en-US", MassUnit.LongTon, "long tn")] + [InlineData("en-US", MassUnit.Megadalton, "MDa")] [InlineData("en-US", MassUnit.Megapound, "Mlb")] [InlineData("en-US", MassUnit.Megatonne, "Mt")] [InlineData("en-US", MassUnit.Microgram, "µg")] @@ -1225,18 +1333,22 @@ public void ConversionRoundTrip() { Mass kilogram = Mass.FromKilograms(1); AssertEx.EqualTolerance(1, Mass.FromCentigrams(kilogram.Centigrams).Kilograms, CentigramsTolerance); + AssertEx.EqualTolerance(1, Mass.FromDaltons(kilogram.Daltons).Kilograms, DaltonsTolerance); AssertEx.EqualTolerance(1, Mass.FromDecagrams(kilogram.Decagrams).Kilograms, DecagramsTolerance); AssertEx.EqualTolerance(1, Mass.FromDecigrams(kilogram.Decigrams).Kilograms, DecigramsTolerance); AssertEx.EqualTolerance(1, Mass.FromEarthMasses(kilogram.EarthMasses).Kilograms, EarthMassesTolerance); AssertEx.EqualTolerance(1, Mass.FromFemtograms(kilogram.Femtograms).Kilograms, FemtogramsTolerance); + AssertEx.EqualTolerance(1, Mass.FromGigadaltons(kilogram.Gigadaltons).Kilograms, GigadaltonsTolerance); AssertEx.EqualTolerance(1, Mass.FromGrains(kilogram.Grains).Kilograms, GrainsTolerance); AssertEx.EqualTolerance(1, Mass.FromGrams(kilogram.Grams).Kilograms, GramsTolerance); AssertEx.EqualTolerance(1, Mass.FromHectograms(kilogram.Hectograms).Kilograms, HectogramsTolerance); + AssertEx.EqualTolerance(1, Mass.FromKilodaltons(kilogram.Kilodaltons).Kilograms, KilodaltonsTolerance); AssertEx.EqualTolerance(1, Mass.FromKilograms(kilogram.Kilograms).Kilograms, KilogramsTolerance); AssertEx.EqualTolerance(1, Mass.FromKilopounds(kilogram.Kilopounds).Kilograms, KilopoundsTolerance); AssertEx.EqualTolerance(1, Mass.FromKilotonnes(kilogram.Kilotonnes).Kilograms, KilotonnesTolerance); AssertEx.EqualTolerance(1, Mass.FromLongHundredweight(kilogram.LongHundredweight).Kilograms, LongHundredweightTolerance); AssertEx.EqualTolerance(1, Mass.FromLongTons(kilogram.LongTons).Kilograms, LongTonsTolerance); + AssertEx.EqualTolerance(1, Mass.FromMegadaltons(kilogram.Megadaltons).Kilograms, MegadaltonsTolerance); AssertEx.EqualTolerance(1, Mass.FromMegapounds(kilogram.Megapounds).Kilograms, MegapoundsTolerance); AssertEx.EqualTolerance(1, Mass.FromMegatonnes(kilogram.Megatonnes).Kilograms, MegatonnesTolerance); AssertEx.EqualTolerance(1, Mass.FromMicrograms(kilogram.Micrograms).Kilograms, MicrogramsTolerance); @@ -1408,18 +1520,22 @@ public void ToString_ReturnsValueAndUnitAbbreviationInCurrentCulture() { using var _ = new CultureScope("en-US"); Assert.Equal("1 cg", new Mass(1, MassUnit.Centigram).ToString()); + Assert.Equal("1 Da", new Mass(1, MassUnit.Dalton).ToString()); Assert.Equal("1 dag", new Mass(1, MassUnit.Decagram).ToString()); Assert.Equal("1 dg", new Mass(1, MassUnit.Decigram).ToString()); Assert.Equal("1 em", new Mass(1, MassUnit.EarthMass).ToString()); Assert.Equal("1 fg", new Mass(1, MassUnit.Femtogram).ToString()); + Assert.Equal("1 GDa", new Mass(1, MassUnit.Gigadalton).ToString()); Assert.Equal("1 gr", new Mass(1, MassUnit.Grain).ToString()); Assert.Equal("1 g", new Mass(1, MassUnit.Gram).ToString()); Assert.Equal("1 hg", new Mass(1, MassUnit.Hectogram).ToString()); + Assert.Equal("1 kDa", new Mass(1, MassUnit.Kilodalton).ToString()); Assert.Equal("1 kg", new Mass(1, MassUnit.Kilogram).ToString()); Assert.Equal("1 klb", new Mass(1, MassUnit.Kilopound).ToString()); Assert.Equal("1 kt", new Mass(1, MassUnit.Kilotonne).ToString()); Assert.Equal("1 cwt", new Mass(1, MassUnit.LongHundredweight).ToString()); Assert.Equal("1 long tn", new Mass(1, MassUnit.LongTon).ToString()); + Assert.Equal("1 MDa", new Mass(1, MassUnit.Megadalton).ToString()); Assert.Equal("1 Mlb", new Mass(1, MassUnit.Megapound).ToString()); Assert.Equal("1 Mt", new Mass(1, MassUnit.Megatonne).ToString()); Assert.Equal("1 µg", new Mass(1, MassUnit.Microgram).ToString()); @@ -1443,18 +1559,22 @@ public void ToString_WithSwedishCulture_ReturnsUnitAbbreviationForEnglishCulture var swedishCulture = CultureInfo.GetCultureInfo("sv-SE"); Assert.Equal("1 cg", new Mass(1, MassUnit.Centigram).ToString(swedishCulture)); + Assert.Equal("1 Da", new Mass(1, MassUnit.Dalton).ToString(swedishCulture)); Assert.Equal("1 dag", new Mass(1, MassUnit.Decagram).ToString(swedishCulture)); Assert.Equal("1 dg", new Mass(1, MassUnit.Decigram).ToString(swedishCulture)); Assert.Equal("1 em", new Mass(1, MassUnit.EarthMass).ToString(swedishCulture)); Assert.Equal("1 fg", new Mass(1, MassUnit.Femtogram).ToString(swedishCulture)); + Assert.Equal("1 GDa", new Mass(1, MassUnit.Gigadalton).ToString(swedishCulture)); Assert.Equal("1 gr", new Mass(1, MassUnit.Grain).ToString(swedishCulture)); Assert.Equal("1 g", new Mass(1, MassUnit.Gram).ToString(swedishCulture)); Assert.Equal("1 hg", new Mass(1, MassUnit.Hectogram).ToString(swedishCulture)); + Assert.Equal("1 kDa", new Mass(1, MassUnit.Kilodalton).ToString(swedishCulture)); Assert.Equal("1 kg", new Mass(1, MassUnit.Kilogram).ToString(swedishCulture)); Assert.Equal("1 klb", new Mass(1, MassUnit.Kilopound).ToString(swedishCulture)); Assert.Equal("1 kt", new Mass(1, MassUnit.Kilotonne).ToString(swedishCulture)); Assert.Equal("1 cwt", new Mass(1, MassUnit.LongHundredweight).ToString(swedishCulture)); Assert.Equal("1 long tn", new Mass(1, MassUnit.LongTon).ToString(swedishCulture)); + Assert.Equal("1 MDa", new Mass(1, MassUnit.Megadalton).ToString(swedishCulture)); Assert.Equal("1 Mlb", new Mass(1, MassUnit.Megapound).ToString(swedishCulture)); Assert.Equal("1 Mt", new Mass(1, MassUnit.Megatonne).ToString(swedishCulture)); Assert.Equal("1 µg", new Mass(1, MassUnit.Microgram).ToString(swedishCulture)); diff --git a/UnitsNet/GeneratedCode/Quantities/Mass.g.cs b/UnitsNet/GeneratedCode/Quantities/Mass.g.cs index 56856ce226..d8cc7d7126 100644 --- a/UnitsNet/GeneratedCode/Quantities/Mass.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Mass.g.cs @@ -134,18 +134,22 @@ public static MassInfo CreateDefault(Func>, public static IEnumerable> GetDefaultMappings() { yield return new (MassUnit.Centigram, "Centigram", "Centigrams", new BaseUnits(mass: MassUnit.Centigram)); + yield return new (MassUnit.Dalton, "Dalton", "Daltons", new BaseUnits(mass: MassUnit.Dalton)); yield return new (MassUnit.Decagram, "Decagram", "Decagrams", new BaseUnits(mass: MassUnit.Decagram)); yield return new (MassUnit.Decigram, "Decigram", "Decigrams", new BaseUnits(mass: MassUnit.Decigram)); yield return new (MassUnit.EarthMass, "EarthMass", "EarthMasses", new BaseUnits(mass: MassUnit.EarthMass)); yield return new (MassUnit.Femtogram, "Femtogram", "Femtograms", new BaseUnits(mass: MassUnit.Femtogram)); + yield return new (MassUnit.Gigadalton, "Gigadalton", "Gigadaltons", new BaseUnits(mass: MassUnit.Gigadalton)); yield return new (MassUnit.Grain, "Grain", "Grains", new BaseUnits(mass: MassUnit.Grain)); yield return new (MassUnit.Gram, "Gram", "Grams", new BaseUnits(mass: MassUnit.Gram)); yield return new (MassUnit.Hectogram, "Hectogram", "Hectograms", new BaseUnits(mass: MassUnit.Hectogram)); + yield return new (MassUnit.Kilodalton, "Kilodalton", "Kilodaltons", new BaseUnits(mass: MassUnit.Kilodalton)); yield return new (MassUnit.Kilogram, "Kilogram", "Kilograms", new BaseUnits(mass: MassUnit.Kilogram)); yield return new (MassUnit.Kilopound, "Kilopound", "Kilopounds", new BaseUnits(mass: MassUnit.Kilopound)); yield return new (MassUnit.Kilotonne, "Kilotonne", "Kilotonnes", new BaseUnits(mass: MassUnit.Kilotonne)); yield return new (MassUnit.LongHundredweight, "LongHundredweight", "LongHundredweight", new BaseUnits(mass: MassUnit.LongHundredweight)); yield return new (MassUnit.LongTon, "LongTon", "LongTons", new BaseUnits(mass: MassUnit.LongTon)); + yield return new (MassUnit.Megadalton, "Megadalton", "Megadaltons", new BaseUnits(mass: MassUnit.Megadalton)); yield return new (MassUnit.Megapound, "Megapound", "Megapounds", new BaseUnits(mass: MassUnit.Megapound)); yield return new (MassUnit.Megatonne, "Megatonne", "Megatonnes", new BaseUnits(mass: MassUnit.Megatonne)); yield return new (MassUnit.Microgram, "Microgram", "Micrograms", new BaseUnits(mass: MassUnit.Microgram)); @@ -270,6 +274,11 @@ public Mass(double value, UnitSystem unitSystem) /// public double Centigrams => As(MassUnit.Centigram); + /// + /// Gets a value of this quantity converted into + /// + public double Daltons => As(MassUnit.Dalton); + /// /// Gets a value of this quantity converted into /// @@ -290,6 +299,11 @@ public Mass(double value, UnitSystem unitSystem) /// public double Femtograms => As(MassUnit.Femtogram); + /// + /// Gets a value of this quantity converted into + /// + public double Gigadaltons => As(MassUnit.Gigadalton); + /// /// Gets a value of this quantity converted into /// @@ -305,6 +319,11 @@ public Mass(double value, UnitSystem unitSystem) /// public double Hectograms => As(MassUnit.Hectogram); + /// + /// Gets a value of this quantity converted into + /// + public double Kilodaltons => As(MassUnit.Kilodalton); + /// /// Gets a value of this quantity converted into /// @@ -330,6 +349,11 @@ public Mass(double value, UnitSystem unitSystem) /// public double LongTons => As(MassUnit.LongTon); + /// + /// Gets a value of this quantity converted into + /// + public double Megadaltons => As(MassUnit.Megadalton); + /// /// Gets a value of this quantity converted into /// @@ -412,17 +436,21 @@ internal static void RegisterDefaultConversions(UnitConverter unitConverter) { // Register in unit converter: MassUnit -> BaseUnit unitConverter.SetConversionFunction(MassUnit.Centigram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); + unitConverter.SetConversionFunction(MassUnit.Dalton, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Decagram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Decigram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.EarthMass, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Femtogram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); + unitConverter.SetConversionFunction(MassUnit.Gigadalton, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Grain, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Gram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Hectogram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); + unitConverter.SetConversionFunction(MassUnit.Kilodalton, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Kilopound, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Kilotonne, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.LongHundredweight, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.LongTon, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); + unitConverter.SetConversionFunction(MassUnit.Megadalton, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Megapound, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Megatonne, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); unitConverter.SetConversionFunction(MassUnit.Microgram, MassUnit.Kilogram, quantity => quantity.ToUnit(MassUnit.Kilogram)); @@ -443,17 +471,21 @@ internal static void RegisterDefaultConversions(UnitConverter unitConverter) // Register in unit converter: BaseUnit -> MassUnit unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Centigram, quantity => quantity.ToUnit(MassUnit.Centigram)); + unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Dalton, quantity => quantity.ToUnit(MassUnit.Dalton)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Decagram, quantity => quantity.ToUnit(MassUnit.Decagram)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Decigram, quantity => quantity.ToUnit(MassUnit.Decigram)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.EarthMass, quantity => quantity.ToUnit(MassUnit.EarthMass)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Femtogram, quantity => quantity.ToUnit(MassUnit.Femtogram)); + unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Gigadalton, quantity => quantity.ToUnit(MassUnit.Gigadalton)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Grain, quantity => quantity.ToUnit(MassUnit.Grain)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Gram, quantity => quantity.ToUnit(MassUnit.Gram)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Hectogram, quantity => quantity.ToUnit(MassUnit.Hectogram)); + unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Kilodalton, quantity => quantity.ToUnit(MassUnit.Kilodalton)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Kilopound, quantity => quantity.ToUnit(MassUnit.Kilopound)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Kilotonne, quantity => quantity.ToUnit(MassUnit.Kilotonne)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.LongHundredweight, quantity => quantity.ToUnit(MassUnit.LongHundredweight)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.LongTon, quantity => quantity.ToUnit(MassUnit.LongTon)); + unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Megadalton, quantity => quantity.ToUnit(MassUnit.Megadalton)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Megapound, quantity => quantity.ToUnit(MassUnit.Megapound)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Megatonne, quantity => quantity.ToUnit(MassUnit.Megatonne)); unitConverter.SetConversionFunction(MassUnit.Kilogram, MassUnit.Microgram, quantity => quantity.ToUnit(MassUnit.Microgram)); @@ -503,6 +535,14 @@ public static Mass FromCentigrams(double value) return new Mass(value, MassUnit.Centigram); } + /// + /// Creates a from . + /// + public static Mass FromDaltons(double value) + { + return new Mass(value, MassUnit.Dalton); + } + /// /// Creates a from . /// @@ -535,6 +575,14 @@ public static Mass FromFemtograms(double value) return new Mass(value, MassUnit.Femtogram); } + /// + /// Creates a from . + /// + public static Mass FromGigadaltons(double value) + { + return new Mass(value, MassUnit.Gigadalton); + } + /// /// Creates a from . /// @@ -559,6 +607,14 @@ public static Mass FromHectograms(double value) return new Mass(value, MassUnit.Hectogram); } + /// + /// Creates a from . + /// + public static Mass FromKilodaltons(double value) + { + return new Mass(value, MassUnit.Kilodalton); + } + /// /// Creates a from . /// @@ -599,6 +655,14 @@ public static Mass FromLongTons(double value) return new Mass(value, MassUnit.LongTon); } + /// + /// Creates a from . + /// + public static Mass FromMegadaltons(double value) + { + return new Mass(value, MassUnit.Megadalton); + } + /// /// Creates a from . /// @@ -1205,17 +1269,21 @@ private bool TryToUnit(MassUnit unit, [NotNullWhen(true)] out Mass? converted) { // MassUnit -> BaseUnit (MassUnit.Centigram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e-2d, MassUnit.Kilogram), + (MassUnit.Dalton, MassUnit.Kilogram) => new Mass(_value * 1.66053906660e-27, MassUnit.Kilogram), (MassUnit.Decagram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e1d, MassUnit.Kilogram), (MassUnit.Decigram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e-1d, MassUnit.Kilogram), (MassUnit.EarthMass, MassUnit.Kilogram) => new Mass(_value * 5.9722E+24, MassUnit.Kilogram), (MassUnit.Femtogram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e-15d, MassUnit.Kilogram), + (MassUnit.Gigadalton, MassUnit.Kilogram) => new Mass((_value * 1.66053906660e-27) * 1e9d, MassUnit.Kilogram), (MassUnit.Grain, MassUnit.Kilogram) => new Mass(_value * 64.79891e-6, MassUnit.Kilogram), (MassUnit.Gram, MassUnit.Kilogram) => new Mass(_value / 1e3, MassUnit.Kilogram), (MassUnit.Hectogram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e2d, MassUnit.Kilogram), + (MassUnit.Kilodalton, MassUnit.Kilogram) => new Mass((_value * 1.66053906660e-27) * 1e3d, MassUnit.Kilogram), (MassUnit.Kilopound, MassUnit.Kilogram) => new Mass((_value * 0.45359237) * 1e3d, MassUnit.Kilogram), (MassUnit.Kilotonne, MassUnit.Kilogram) => new Mass((_value * 1e3) * 1e3d, MassUnit.Kilogram), (MassUnit.LongHundredweight, MassUnit.Kilogram) => new Mass(_value * 50.80234544, MassUnit.Kilogram), (MassUnit.LongTon, MassUnit.Kilogram) => new Mass(_value * 1016.0469088, MassUnit.Kilogram), + (MassUnit.Megadalton, MassUnit.Kilogram) => new Mass((_value * 1.66053906660e-27) * 1e6d, MassUnit.Kilogram), (MassUnit.Megapound, MassUnit.Kilogram) => new Mass((_value * 0.45359237) * 1e6d, MassUnit.Kilogram), (MassUnit.Megatonne, MassUnit.Kilogram) => new Mass((_value * 1e3) * 1e6d, MassUnit.Kilogram), (MassUnit.Microgram, MassUnit.Kilogram) => new Mass((_value / 1e3) * 1e-6d, MassUnit.Kilogram), @@ -1233,17 +1301,21 @@ private bool TryToUnit(MassUnit unit, [NotNullWhen(true)] out Mass? converted) // BaseUnit -> MassUnit (MassUnit.Kilogram, MassUnit.Centigram) => new Mass((_value * 1e3) / 1e-2d, MassUnit.Centigram), + (MassUnit.Kilogram, MassUnit.Dalton) => new Mass(_value / 1.66053906660e-27, MassUnit.Dalton), (MassUnit.Kilogram, MassUnit.Decagram) => new Mass((_value * 1e3) / 1e1d, MassUnit.Decagram), (MassUnit.Kilogram, MassUnit.Decigram) => new Mass((_value * 1e3) / 1e-1d, MassUnit.Decigram), (MassUnit.Kilogram, MassUnit.EarthMass) => new Mass(_value / 5.9722E+24, MassUnit.EarthMass), (MassUnit.Kilogram, MassUnit.Femtogram) => new Mass((_value * 1e3) / 1e-15d, MassUnit.Femtogram), + (MassUnit.Kilogram, MassUnit.Gigadalton) => new Mass((_value / 1.66053906660e-27) / 1e9d, MassUnit.Gigadalton), (MassUnit.Kilogram, MassUnit.Grain) => new Mass(_value / 64.79891e-6, MassUnit.Grain), (MassUnit.Kilogram, MassUnit.Gram) => new Mass(_value * 1e3, MassUnit.Gram), (MassUnit.Kilogram, MassUnit.Hectogram) => new Mass((_value * 1e3) / 1e2d, MassUnit.Hectogram), + (MassUnit.Kilogram, MassUnit.Kilodalton) => new Mass((_value / 1.66053906660e-27) / 1e3d, MassUnit.Kilodalton), (MassUnit.Kilogram, MassUnit.Kilopound) => new Mass((_value / 0.45359237) / 1e3d, MassUnit.Kilopound), (MassUnit.Kilogram, MassUnit.Kilotonne) => new Mass((_value / 1e3) / 1e3d, MassUnit.Kilotonne), (MassUnit.Kilogram, MassUnit.LongHundredweight) => new Mass(_value / 50.80234544, MassUnit.LongHundredweight), (MassUnit.Kilogram, MassUnit.LongTon) => new Mass(_value / 1016.0469088, MassUnit.LongTon), + (MassUnit.Kilogram, MassUnit.Megadalton) => new Mass((_value / 1.66053906660e-27) / 1e6d, MassUnit.Megadalton), (MassUnit.Kilogram, MassUnit.Megapound) => new Mass((_value / 0.45359237) / 1e6d, MassUnit.Megapound), (MassUnit.Kilogram, MassUnit.Megatonne) => new Mass((_value / 1e3) / 1e6d, MassUnit.Megatonne), (MassUnit.Kilogram, MassUnit.Microgram) => new Mass((_value * 1e3) / 1e-6d, MassUnit.Microgram), diff --git a/UnitsNet/GeneratedCode/Resources/Mass.restext b/UnitsNet/GeneratedCode/Resources/Mass.restext index e5e2f75215..c749056c18 100644 --- a/UnitsNet/GeneratedCode/Resources/Mass.restext +++ b/UnitsNet/GeneratedCode/Resources/Mass.restext @@ -1,16 +1,20 @@ Centigrams=cg +Daltons=Da,u Decagrams=dag Decigrams=dg EarthMasses=em Femtograms=fg +Gigadaltons=GDa,Gu Grains=gr Grams=g Hectograms=hg +Kilodaltons=kDa,ku Kilograms=kg Kilopounds=klb,klbs,klbm Kilotonnes=kt LongHundredweight=cwt LongTons=long tn +Megadaltons=MDa,Mu Megapounds=Mlb,Mlbs,Mlbm Megatonnes=Mt Micrograms=µg diff --git a/UnitsNet/GeneratedCode/Units/MassUnit.g.cs b/UnitsNet/GeneratedCode/Units/MassUnit.g.cs index 8bf661827e..55b385ee83 100644 --- a/UnitsNet/GeneratedCode/Units/MassUnit.g.cs +++ b/UnitsNet/GeneratedCode/Units/MassUnit.g.cs @@ -26,6 +26,12 @@ namespace UnitsNet.Units public enum MassUnit { Centigram = 1, + + /// + /// The Dalton or unified atomic mass unit (abbreviation Da or u) is a unit of mass defined as 1/12 of the mass of an unbound neutral atom of carbon-12 in its nuclear and electronic ground state and at rest. + /// + /// https://en.wikipedia.org/wiki/Dalton_(unit) + Dalton = 37, Decagram = 2, Decigram = 3, @@ -35,6 +41,7 @@ public enum MassUnit /// https://en.wikipedia.org/wiki/Earth_mass EarthMass = 4, Femtogram = 35, + Gigadalton = 33, /// /// A grain is a unit of measurement of mass, and in the troy weight, avoirdupois, and Apothecaries' system, equal to exactly 64.79891 milligrams. @@ -43,6 +50,7 @@ public enum MassUnit Grain = 5, Gram = 6, Hectogram = 7, + Kilodalton = 26, Kilogram = 8, Kilopound = 9, Kilotonne = 10, @@ -58,6 +66,7 @@ public enum MassUnit /// /// http://en.wikipedia.org/wiki/Long_ton LongTon = 12, + Megadalton = 30, Megapound = 13, Megatonne = 14, Microgram = 15,