diff --git a/Common/UnitDefinitions/Irradiation.json b/Common/UnitDefinitions/Irradiation.json index 1097c6e3b4..3689cd0db4 100644 --- a/Common/UnitDefinitions/Irradiation.json +++ b/Common/UnitDefinitions/Irradiation.json @@ -58,6 +58,19 @@ "Abbreviations": [ "Wh/m²" ] } ] + }, + { + "SingularName": "BtuPerSquareFoot", + "PluralName": "BtusPerSquareFoot", + "FromUnitToBaseFunc": "{x} * (52752792631d / 4645152d)", + "FromBaseToUnitFunc": "{x} / (52752792631d / 4645152d)", + "Prefixes": [ "Kilo" ], + "Localization": [ + { + "Culture": "en-US", + "Abbreviations": [ "Btu/ft²" ] + } + ] } ] } diff --git a/Common/UnitEnumValues.g.json b/Common/UnitEnumValues.g.json index 33a2c2cc8c..e400881862 100644 --- a/Common/UnitEnumValues.g.json +++ b/Common/UnitEnumValues.g.json @@ -631,7 +631,9 @@ "KilojoulePerSquareMeter": 4, "KilowattHourPerSquareMeter": 5, "MillijoulePerSquareCentimeter": 6, - "WattHourPerSquareMeter": 7 + "WattHourPerSquareMeter": 7, + "BtuPerSquareFoot": 15, + "KilobtuPerSquareFoot": 9 }, "Jerk": { "CentimeterPerSecondCubed": 1, diff --git a/UnitsNet.NanoFramework/GeneratedCode/Quantities/Irradiation.g.cs b/UnitsNet.NanoFramework/GeneratedCode/Quantities/Irradiation.g.cs index 7e3ddcd7d1..c060bc14a8 100644 --- a/UnitsNet.NanoFramework/GeneratedCode/Quantities/Irradiation.g.cs +++ b/UnitsNet.NanoFramework/GeneratedCode/Quantities/Irradiation.g.cs @@ -82,6 +82,11 @@ public Irradiation(double value, IrradiationUnit unit) public static Irradiation Zero { get; } = new Irradiation(0, BaseUnit); #region Conversion Properties + /// + /// Gets a value of this quantity converted into + /// + public double BtuPerSquareFoot => As(IrradiationUnit.BtuPerSquareFoot); + /// /// Gets a value of this quantity converted into /// @@ -97,6 +102,11 @@ public Irradiation(double value, IrradiationUnit unit) /// public double JoulesPerSquareMillimeter => As(IrradiationUnit.JoulePerSquareMillimeter); + /// + /// Gets a value of this quantity converted into + /// + public double KilobtuPerSquareFoot => As(IrradiationUnit.KilobtuPerSquareFoot); + /// /// Gets a value of this quantity converted into /// @@ -121,6 +131,12 @@ public Irradiation(double value, IrradiationUnit unit) #region Static Factory Methods + /// + /// Creates a from . + /// + /// If value is NaN or Infinity. + public static Irradiation FromBtuPerSquareFoot(double btupersquarefoot) => new Irradiation(btupersquarefoot, IrradiationUnit.BtuPerSquareFoot); + /// /// Creates a from . /// @@ -139,6 +155,12 @@ public Irradiation(double value, IrradiationUnit unit) /// If value is NaN or Infinity. public static Irradiation FromJoulesPerSquareMillimeter(double joulespersquaremillimeter) => new Irradiation(joulespersquaremillimeter, IrradiationUnit.JoulePerSquareMillimeter); + /// + /// Creates a from . + /// + /// If value is NaN or Infinity. + public static Irradiation FromKilobtuPerSquareFoot(double kilobtupersquarefoot) => new Irradiation(kilobtupersquarefoot, IrradiationUnit.KilobtuPerSquareFoot); + /// /// Creates a from . /// @@ -203,9 +225,11 @@ private double GetValueInBaseUnit() { return Unit switch { + IrradiationUnit.BtuPerSquareFoot => _value * 11356.5267, IrradiationUnit.JoulePerSquareCentimeter => _value * 1e4, IrradiationUnit.JoulePerSquareMeter => _value, IrradiationUnit.JoulePerSquareMillimeter => _value * 1e6, + IrradiationUnit.KilobtuPerSquareFoot => (_value * 11356.5267) * 1e3d, IrradiationUnit.KilojoulePerSquareMeter => (_value) * 1e3d, IrradiationUnit.KilowattHourPerSquareMeter => (_value * 3600d) * 1e3d, IrradiationUnit.MillijoulePerSquareCentimeter => (_value * 1e4) * 1e-3d, @@ -223,9 +247,11 @@ private double GetValueAs(IrradiationUnit unit) return unit switch { + IrradiationUnit.BtuPerSquareFoot => baseUnitValue / 11356.5267, IrradiationUnit.JoulePerSquareCentimeter => baseUnitValue / 1e4, IrradiationUnit.JoulePerSquareMeter => baseUnitValue, IrradiationUnit.JoulePerSquareMillimeter => baseUnitValue / 1e6, + IrradiationUnit.KilobtuPerSquareFoot => (baseUnitValue / 11356.5267) / 1e3d, IrradiationUnit.KilojoulePerSquareMeter => (baseUnitValue) / 1e3d, IrradiationUnit.KilowattHourPerSquareMeter => (baseUnitValue / 3600d) / 1e3d, IrradiationUnit.MillijoulePerSquareCentimeter => (baseUnitValue / 1e4) / 1e-3d, diff --git a/UnitsNet.NanoFramework/GeneratedCode/Units/IrradiationUnit.g.cs b/UnitsNet.NanoFramework/GeneratedCode/Units/IrradiationUnit.g.cs index 449fdf2491..26d131063a 100644 --- a/UnitsNet.NanoFramework/GeneratedCode/Units/IrradiationUnit.g.cs +++ b/UnitsNet.NanoFramework/GeneratedCode/Units/IrradiationUnit.g.cs @@ -25,9 +25,11 @@ namespace UnitsNet.Units public enum IrradiationUnit { + BtuPerSquareFoot = 15, JoulePerSquareCentimeter = 1, JoulePerSquareMeter = 2, JoulePerSquareMillimeter = 3, + KilobtuPerSquareFoot = 9, KilojoulePerSquareMeter = 4, KilowattHourPerSquareMeter = 5, MillijoulePerSquareCentimeter = 6, diff --git a/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToIrradiationExtensionsTest.g.cs b/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToIrradiationExtensionsTest.g.cs index 23b0b7a841..5ca8a8b7c4 100644 --- a/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToIrradiationExtensionsTest.g.cs +++ b/UnitsNet.NumberExtensions.Tests/GeneratedCode/NumberToIrradiationExtensionsTest.g.cs @@ -24,6 +24,10 @@ namespace UnitsNet.Tests { public class NumberToIrradiationExtensionsTests { + [Fact] + public void NumberToBtuPerSquareFootTest() => + Assert.Equal(Irradiation.FromBtuPerSquareFoot(2), 2.BtuPerSquareFoot()); + [Fact] public void NumberToJoulesPerSquareCentimeterTest() => Assert.Equal(Irradiation.FromJoulesPerSquareCentimeter(2), 2.JoulesPerSquareCentimeter()); @@ -36,6 +40,10 @@ public void NumberToJoulesPerSquareMeterTest() => public void NumberToJoulesPerSquareMillimeterTest() => Assert.Equal(Irradiation.FromJoulesPerSquareMillimeter(2), 2.JoulesPerSquareMillimeter()); + [Fact] + public void NumberToKilobtuPerSquareFootTest() => + Assert.Equal(Irradiation.FromKilobtuPerSquareFoot(2), 2.KilobtuPerSquareFoot()); + [Fact] public void NumberToKilojoulesPerSquareMeterTest() => Assert.Equal(Irradiation.FromKilojoulesPerSquareMeter(2), 2.KilojoulesPerSquareMeter()); diff --git a/UnitsNet.NumberExtensions/GeneratedCode/NumberToIrradiationExtensions.g.cs b/UnitsNet.NumberExtensions/GeneratedCode/NumberToIrradiationExtensions.g.cs index 6d9d3433b5..6d264745d7 100644 --- a/UnitsNet.NumberExtensions/GeneratedCode/NumberToIrradiationExtensions.g.cs +++ b/UnitsNet.NumberExtensions/GeneratedCode/NumberToIrradiationExtensions.g.cs @@ -32,6 +32,14 @@ namespace UnitsNet.NumberExtensions.NumberToIrradiation /// public static class NumberToIrradiationExtensions { + /// + public static Irradiation BtuPerSquareFoot(this T value) + where T : notnull +#if NET7_0_OR_GREATER + , INumber +#endif + => Irradiation.FromBtuPerSquareFoot(Convert.ToDouble(value)); + /// public static Irradiation JoulesPerSquareCentimeter(this T value) where T : notnull @@ -56,6 +64,14 @@ public static Irradiation JoulesPerSquareMillimeter(this T value) #endif => Irradiation.FromJoulesPerSquareMillimeter(Convert.ToDouble(value)); + /// + public static Irradiation KilobtuPerSquareFoot(this T value) + where T : notnull +#if NET7_0_OR_GREATER + , INumber +#endif + => Irradiation.FromKilobtuPerSquareFoot(Convert.ToDouble(value)); + /// public static Irradiation KilojoulesPerSquareMeter(this T value) where T : notnull diff --git a/UnitsNet.Tests/CustomCode/IrradiationTests.cs b/UnitsNet.Tests/CustomCode/IrradiationTests.cs index 91bb9b6e9a..978a0b1364 100644 --- a/UnitsNet.Tests/CustomCode/IrradiationTests.cs +++ b/UnitsNet.Tests/CustomCode/IrradiationTests.cs @@ -41,5 +41,9 @@ public class IrradiationTests : IrradiationTestsBase protected override double WattHoursPerSquareMeterInOneJoulePerSquareMeter => 2.777777777777778e-4; protected override double KilowattHoursPerSquareMeterInOneJoulePerSquareMeter => 2.777777777777778e-7; + + protected override double BtuPerSquareFootInOneJoulePerSquareMeter => 8.805509170334624e-5; + + protected override double KilobtuPerSquareFootInOneJoulePerSquareMeter => 8.805509170334624e-8; } } diff --git a/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs b/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs index 908b49b1f8..db93eb9b93 100644 --- a/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs +++ b/UnitsNet.Tests/GeneratedCode/TestsBase/IrradiationTestsBase.g.cs @@ -38,18 +38,22 @@ namespace UnitsNet.Tests // ReSharper disable once PartialTypeWithSinglePart public abstract partial class IrradiationTestsBase : QuantityTestsBase { + protected abstract double BtuPerSquareFootInOneJoulePerSquareMeter { get; } protected abstract double JoulesPerSquareCentimeterInOneJoulePerSquareMeter { get; } protected abstract double JoulesPerSquareMeterInOneJoulePerSquareMeter { get; } protected abstract double JoulesPerSquareMillimeterInOneJoulePerSquareMeter { get; } + protected abstract double KilobtuPerSquareFootInOneJoulePerSquareMeter { get; } protected abstract double KilojoulesPerSquareMeterInOneJoulePerSquareMeter { get; } protected abstract double KilowattHoursPerSquareMeterInOneJoulePerSquareMeter { get; } protected abstract double MillijoulesPerSquareCentimeterInOneJoulePerSquareMeter { get; } protected abstract double WattHoursPerSquareMeterInOneJoulePerSquareMeter { get; } // ReSharper disable VirtualMemberNeverOverriden.Global + protected virtual double BtuPerSquareFootTolerance { get { return 1e-5; } } protected virtual double JoulesPerSquareCentimeterTolerance { get { return 1e-5; } } protected virtual double JoulesPerSquareMeterTolerance { get { return 1e-5; } } protected virtual double JoulesPerSquareMillimeterTolerance { get { return 1e-5; } } + protected virtual double KilobtuPerSquareFootTolerance { get { return 1e-5; } } protected virtual double KilojoulesPerSquareMeterTolerance { get { return 1e-5; } } protected virtual double KilowattHoursPerSquareMeterTolerance { get { return 1e-5; } } protected virtual double MillijoulesPerSquareCentimeterTolerance { get { return 1e-5; } } @@ -60,9 +64,11 @@ public abstract partial class IrradiationTestsBase : QuantityTestsBase { return unit switch { + IrradiationUnit.BtuPerSquareFoot => (BtuPerSquareFootInOneJoulePerSquareMeter, BtuPerSquareFootTolerance), IrradiationUnit.JoulePerSquareCentimeter => (JoulesPerSquareCentimeterInOneJoulePerSquareMeter, JoulesPerSquareCentimeterTolerance), IrradiationUnit.JoulePerSquareMeter => (JoulesPerSquareMeterInOneJoulePerSquareMeter, JoulesPerSquareMeterTolerance), IrradiationUnit.JoulePerSquareMillimeter => (JoulesPerSquareMillimeterInOneJoulePerSquareMeter, JoulesPerSquareMillimeterTolerance), + IrradiationUnit.KilobtuPerSquareFoot => (KilobtuPerSquareFootInOneJoulePerSquareMeter, KilobtuPerSquareFootTolerance), IrradiationUnit.KilojoulePerSquareMeter => (KilojoulesPerSquareMeterInOneJoulePerSquareMeter, KilojoulesPerSquareMeterTolerance), IrradiationUnit.KilowattHourPerSquareMeter => (KilowattHoursPerSquareMeterInOneJoulePerSquareMeter, KilowattHoursPerSquareMeterTolerance), IrradiationUnit.MillijoulePerSquareCentimeter => (MillijoulesPerSquareCentimeterInOneJoulePerSquareMeter, MillijoulesPerSquareCentimeterTolerance), @@ -73,9 +79,11 @@ public abstract partial class IrradiationTestsBase : QuantityTestsBase public static IEnumerable UnitTypes = new List { + new object[] { IrradiationUnit.BtuPerSquareFoot }, new object[] { IrradiationUnit.JoulePerSquareCentimeter }, new object[] { IrradiationUnit.JoulePerSquareMeter }, new object[] { IrradiationUnit.JoulePerSquareMillimeter }, + new object[] { IrradiationUnit.KilobtuPerSquareFoot }, new object[] { IrradiationUnit.KilojoulePerSquareMeter }, new object[] { IrradiationUnit.KilowattHourPerSquareMeter }, new object[] { IrradiationUnit.MillijoulePerSquareCentimeter }, @@ -142,9 +150,11 @@ public void Irradiation_QuantityInfo_ReturnsQuantityInfoDescribingQuantity() public void JoulePerSquareMeterToIrradiationUnits() { Irradiation joulepersquaremeter = Irradiation.FromJoulesPerSquareMeter(1); + AssertEx.EqualTolerance(BtuPerSquareFootInOneJoulePerSquareMeter, joulepersquaremeter.BtuPerSquareFoot, BtuPerSquareFootTolerance); AssertEx.EqualTolerance(JoulesPerSquareCentimeterInOneJoulePerSquareMeter, joulepersquaremeter.JoulesPerSquareCentimeter, JoulesPerSquareCentimeterTolerance); AssertEx.EqualTolerance(JoulesPerSquareMeterInOneJoulePerSquareMeter, joulepersquaremeter.JoulesPerSquareMeter, JoulesPerSquareMeterTolerance); AssertEx.EqualTolerance(JoulesPerSquareMillimeterInOneJoulePerSquareMeter, joulepersquaremeter.JoulesPerSquareMillimeter, JoulesPerSquareMillimeterTolerance); + AssertEx.EqualTolerance(KilobtuPerSquareFootInOneJoulePerSquareMeter, joulepersquaremeter.KilobtuPerSquareFoot, KilobtuPerSquareFootTolerance); AssertEx.EqualTolerance(KilojoulesPerSquareMeterInOneJoulePerSquareMeter, joulepersquaremeter.KilojoulesPerSquareMeter, KilojoulesPerSquareMeterTolerance); AssertEx.EqualTolerance(KilowattHoursPerSquareMeterInOneJoulePerSquareMeter, joulepersquaremeter.KilowattHoursPerSquareMeter, KilowattHoursPerSquareMeterTolerance); AssertEx.EqualTolerance(MillijoulesPerSquareCentimeterInOneJoulePerSquareMeter, joulepersquaremeter.MillijoulesPerSquareCentimeter, MillijoulesPerSquareCentimeterTolerance); @@ -154,33 +164,41 @@ public void JoulePerSquareMeterToIrradiationUnits() [Fact] public void From_ValueAndUnit_ReturnsQuantityWithSameValueAndUnit() { - var quantity00 = Irradiation.From(1, IrradiationUnit.JoulePerSquareCentimeter); - AssertEx.EqualTolerance(1, quantity00.JoulesPerSquareCentimeter, JoulesPerSquareCentimeterTolerance); - Assert.Equal(IrradiationUnit.JoulePerSquareCentimeter, quantity00.Unit); + var quantity00 = Irradiation.From(1, IrradiationUnit.BtuPerSquareFoot); + AssertEx.EqualTolerance(1, quantity00.BtuPerSquareFoot, BtuPerSquareFootTolerance); + Assert.Equal(IrradiationUnit.BtuPerSquareFoot, quantity00.Unit); - var quantity01 = Irradiation.From(1, IrradiationUnit.JoulePerSquareMeter); - AssertEx.EqualTolerance(1, quantity01.JoulesPerSquareMeter, JoulesPerSquareMeterTolerance); - Assert.Equal(IrradiationUnit.JoulePerSquareMeter, quantity01.Unit); + var quantity01 = Irradiation.From(1, IrradiationUnit.JoulePerSquareCentimeter); + AssertEx.EqualTolerance(1, quantity01.JoulesPerSquareCentimeter, JoulesPerSquareCentimeterTolerance); + Assert.Equal(IrradiationUnit.JoulePerSquareCentimeter, quantity01.Unit); - var quantity02 = Irradiation.From(1, IrradiationUnit.JoulePerSquareMillimeter); - AssertEx.EqualTolerance(1, quantity02.JoulesPerSquareMillimeter, JoulesPerSquareMillimeterTolerance); - Assert.Equal(IrradiationUnit.JoulePerSquareMillimeter, quantity02.Unit); + var quantity02 = Irradiation.From(1, IrradiationUnit.JoulePerSquareMeter); + AssertEx.EqualTolerance(1, quantity02.JoulesPerSquareMeter, JoulesPerSquareMeterTolerance); + Assert.Equal(IrradiationUnit.JoulePerSquareMeter, quantity02.Unit); - var quantity03 = Irradiation.From(1, IrradiationUnit.KilojoulePerSquareMeter); - AssertEx.EqualTolerance(1, quantity03.KilojoulesPerSquareMeter, KilojoulesPerSquareMeterTolerance); - Assert.Equal(IrradiationUnit.KilojoulePerSquareMeter, quantity03.Unit); + var quantity03 = Irradiation.From(1, IrradiationUnit.JoulePerSquareMillimeter); + AssertEx.EqualTolerance(1, quantity03.JoulesPerSquareMillimeter, JoulesPerSquareMillimeterTolerance); + Assert.Equal(IrradiationUnit.JoulePerSquareMillimeter, quantity03.Unit); - var quantity04 = Irradiation.From(1, IrradiationUnit.KilowattHourPerSquareMeter); - AssertEx.EqualTolerance(1, quantity04.KilowattHoursPerSquareMeter, KilowattHoursPerSquareMeterTolerance); - Assert.Equal(IrradiationUnit.KilowattHourPerSquareMeter, quantity04.Unit); + var quantity04 = Irradiation.From(1, IrradiationUnit.KilobtuPerSquareFoot); + AssertEx.EqualTolerance(1, quantity04.KilobtuPerSquareFoot, KilobtuPerSquareFootTolerance); + Assert.Equal(IrradiationUnit.KilobtuPerSquareFoot, quantity04.Unit); - var quantity05 = Irradiation.From(1, IrradiationUnit.MillijoulePerSquareCentimeter); - AssertEx.EqualTolerance(1, quantity05.MillijoulesPerSquareCentimeter, MillijoulesPerSquareCentimeterTolerance); - Assert.Equal(IrradiationUnit.MillijoulePerSquareCentimeter, quantity05.Unit); + var quantity05 = Irradiation.From(1, IrradiationUnit.KilojoulePerSquareMeter); + AssertEx.EqualTolerance(1, quantity05.KilojoulesPerSquareMeter, KilojoulesPerSquareMeterTolerance); + Assert.Equal(IrradiationUnit.KilojoulePerSquareMeter, quantity05.Unit); - var quantity06 = Irradiation.From(1, IrradiationUnit.WattHourPerSquareMeter); - AssertEx.EqualTolerance(1, quantity06.WattHoursPerSquareMeter, WattHoursPerSquareMeterTolerance); - Assert.Equal(IrradiationUnit.WattHourPerSquareMeter, quantity06.Unit); + var quantity06 = Irradiation.From(1, IrradiationUnit.KilowattHourPerSquareMeter); + AssertEx.EqualTolerance(1, quantity06.KilowattHoursPerSquareMeter, KilowattHoursPerSquareMeterTolerance); + Assert.Equal(IrradiationUnit.KilowattHourPerSquareMeter, quantity06.Unit); + + var quantity07 = Irradiation.From(1, IrradiationUnit.MillijoulePerSquareCentimeter); + AssertEx.EqualTolerance(1, quantity07.MillijoulesPerSquareCentimeter, MillijoulesPerSquareCentimeterTolerance); + Assert.Equal(IrradiationUnit.MillijoulePerSquareCentimeter, quantity07.Unit); + + var quantity08 = Irradiation.From(1, IrradiationUnit.WattHourPerSquareMeter); + AssertEx.EqualTolerance(1, quantity08.WattHoursPerSquareMeter, WattHoursPerSquareMeterTolerance); + Assert.Equal(IrradiationUnit.WattHourPerSquareMeter, quantity08.Unit); } @@ -201,9 +219,11 @@ public void FromJoulesPerSquareMeter_WithNanValue_ThrowsArgumentException() public void As() { var joulepersquaremeter = Irradiation.FromJoulesPerSquareMeter(1); + AssertEx.EqualTolerance(BtuPerSquareFootInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.BtuPerSquareFoot), BtuPerSquareFootTolerance); AssertEx.EqualTolerance(JoulesPerSquareCentimeterInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.JoulePerSquareCentimeter), JoulesPerSquareCentimeterTolerance); AssertEx.EqualTolerance(JoulesPerSquareMeterInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.JoulePerSquareMeter), JoulesPerSquareMeterTolerance); AssertEx.EqualTolerance(JoulesPerSquareMillimeterInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.JoulePerSquareMillimeter), JoulesPerSquareMillimeterTolerance); + AssertEx.EqualTolerance(KilobtuPerSquareFootInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.KilobtuPerSquareFoot), KilobtuPerSquareFootTolerance); AssertEx.EqualTolerance(KilojoulesPerSquareMeterInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.KilojoulePerSquareMeter), KilojoulesPerSquareMeterTolerance); AssertEx.EqualTolerance(KilowattHoursPerSquareMeterInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.KilowattHourPerSquareMeter), KilowattHoursPerSquareMeterTolerance); AssertEx.EqualTolerance(MillijoulesPerSquareCentimeterInOneJoulePerSquareMeter, joulepersquaremeter.As(IrradiationUnit.MillijoulePerSquareCentimeter), MillijoulesPerSquareCentimeterTolerance); @@ -230,6 +250,13 @@ public void As_SIUnitSystem_ThrowsArgumentExceptionIfNotSupported() [Fact] public void Parse() { + try + { + var parsed = Irradiation.Parse("1 Btu/ft²", CultureInfo.GetCultureInfo("en-US")); + AssertEx.EqualTolerance(1, parsed.BtuPerSquareFoot, BtuPerSquareFootTolerance); + Assert.Equal(IrradiationUnit.BtuPerSquareFoot, parsed.Unit); + } catch (AmbiguousUnitParseException) { /* Some units have the same abbreviations */ } + try { var parsed = Irradiation.Parse("1 J/cm²", CultureInfo.GetCultureInfo("en-US")); @@ -251,6 +278,13 @@ public void Parse() Assert.Equal(IrradiationUnit.JoulePerSquareMillimeter, parsed.Unit); } catch (AmbiguousUnitParseException) { /* Some units have the same abbreviations */ } + try + { + var parsed = Irradiation.Parse("1 kBtu/ft²", CultureInfo.GetCultureInfo("en-US")); + AssertEx.EqualTolerance(1, parsed.KilobtuPerSquareFoot, KilobtuPerSquareFootTolerance); + Assert.Equal(IrradiationUnit.KilobtuPerSquareFoot, parsed.Unit); + } catch (AmbiguousUnitParseException) { /* Some units have the same abbreviations */ } + try { var parsed = Irradiation.Parse("1 kJ/m²", CultureInfo.GetCultureInfo("en-US")); @@ -284,6 +318,12 @@ public void Parse() [Fact] public void TryParse() { + { + Assert.True(Irradiation.TryParse("1 Btu/ft²", CultureInfo.GetCultureInfo("en-US"), out var parsed)); + AssertEx.EqualTolerance(1, parsed.BtuPerSquareFoot, BtuPerSquareFootTolerance); + Assert.Equal(IrradiationUnit.BtuPerSquareFoot, parsed.Unit); + } + { Assert.True(Irradiation.TryParse("1 J/cm²", CultureInfo.GetCultureInfo("en-US"), out var parsed)); AssertEx.EqualTolerance(1, parsed.JoulesPerSquareCentimeter, JoulesPerSquareCentimeterTolerance); @@ -302,6 +342,12 @@ public void TryParse() Assert.Equal(IrradiationUnit.JoulePerSquareMillimeter, parsed.Unit); } + { + Assert.True(Irradiation.TryParse("1 kBtu/ft²", CultureInfo.GetCultureInfo("en-US"), out var parsed)); + AssertEx.EqualTolerance(1, parsed.KilobtuPerSquareFoot, KilobtuPerSquareFootTolerance); + Assert.Equal(IrradiationUnit.KilobtuPerSquareFoot, parsed.Unit); + } + { Assert.True(Irradiation.TryParse("1 kJ/m²", CultureInfo.GetCultureInfo("en-US"), out var parsed)); AssertEx.EqualTolerance(1, parsed.KilojoulesPerSquareMeter, KilojoulesPerSquareMeterTolerance); @@ -331,6 +377,12 @@ public void TryParse() [Fact] public void ParseUnit() { + try + { + var parsedUnit = Irradiation.ParseUnit("Btu/ft²", CultureInfo.GetCultureInfo("en-US")); + Assert.Equal(IrradiationUnit.BtuPerSquareFoot, parsedUnit); + } catch (AmbiguousUnitParseException) { /* Some units have the same abbreviations */ } + try { var parsedUnit = Irradiation.ParseUnit("J/cm²", CultureInfo.GetCultureInfo("en-US")); @@ -349,6 +401,12 @@ public void ParseUnit() Assert.Equal(IrradiationUnit.JoulePerSquareMillimeter, parsedUnit); } catch (AmbiguousUnitParseException) { /* Some units have the same abbreviations */ } + try + { + var parsedUnit = Irradiation.ParseUnit("kBtu/ft²", CultureInfo.GetCultureInfo("en-US")); + Assert.Equal(IrradiationUnit.KilobtuPerSquareFoot, parsedUnit); + } catch (AmbiguousUnitParseException) { /* Some units have the same abbreviations */ } + try { var parsedUnit = Irradiation.ParseUnit("kJ/m²", CultureInfo.GetCultureInfo("en-US")); @@ -378,6 +436,11 @@ public void ParseUnit() [Fact] public void TryParseUnit() { + { + Assert.True(Irradiation.TryParseUnit("Btu/ft²", CultureInfo.GetCultureInfo("en-US"), out var parsedUnit)); + Assert.Equal(IrradiationUnit.BtuPerSquareFoot, parsedUnit); + } + { Assert.True(Irradiation.TryParseUnit("J/cm²", CultureInfo.GetCultureInfo("en-US"), out var parsedUnit)); Assert.Equal(IrradiationUnit.JoulePerSquareCentimeter, parsedUnit); @@ -393,6 +456,11 @@ public void TryParseUnit() Assert.Equal(IrradiationUnit.JoulePerSquareMillimeter, parsedUnit); } + { + Assert.True(Irradiation.TryParseUnit("kBtu/ft²", CultureInfo.GetCultureInfo("en-US"), out var parsedUnit)); + Assert.Equal(IrradiationUnit.KilobtuPerSquareFoot, parsedUnit); + } + { Assert.True(Irradiation.TryParseUnit("kJ/m²", CultureInfo.GetCultureInfo("en-US"), out var parsedUnit)); Assert.Equal(IrradiationUnit.KilojoulePerSquareMeter, parsedUnit); @@ -461,9 +529,11 @@ public virtual void ToUnit_FromDefaultQuantity_ReturnsQuantityWithGivenUnit(Irra public void ConversionRoundTrip() { Irradiation joulepersquaremeter = Irradiation.FromJoulesPerSquareMeter(1); + AssertEx.EqualTolerance(1, Irradiation.FromBtuPerSquareFoot(joulepersquaremeter.BtuPerSquareFoot).JoulesPerSquareMeter, BtuPerSquareFootTolerance); AssertEx.EqualTolerance(1, Irradiation.FromJoulesPerSquareCentimeter(joulepersquaremeter.JoulesPerSquareCentimeter).JoulesPerSquareMeter, JoulesPerSquareCentimeterTolerance); AssertEx.EqualTolerance(1, Irradiation.FromJoulesPerSquareMeter(joulepersquaremeter.JoulesPerSquareMeter).JoulesPerSquareMeter, JoulesPerSquareMeterTolerance); AssertEx.EqualTolerance(1, Irradiation.FromJoulesPerSquareMillimeter(joulepersquaremeter.JoulesPerSquareMillimeter).JoulesPerSquareMeter, JoulesPerSquareMillimeterTolerance); + AssertEx.EqualTolerance(1, Irradiation.FromKilobtuPerSquareFoot(joulepersquaremeter.KilobtuPerSquareFoot).JoulesPerSquareMeter, KilobtuPerSquareFootTolerance); AssertEx.EqualTolerance(1, Irradiation.FromKilojoulesPerSquareMeter(joulepersquaremeter.KilojoulesPerSquareMeter).JoulesPerSquareMeter, KilojoulesPerSquareMeterTolerance); AssertEx.EqualTolerance(1, Irradiation.FromKilowattHoursPerSquareMeter(joulepersquaremeter.KilowattHoursPerSquareMeter).JoulesPerSquareMeter, KilowattHoursPerSquareMeterTolerance); AssertEx.EqualTolerance(1, Irradiation.FromMillijoulesPerSquareCentimeter(joulepersquaremeter.MillijoulesPerSquareCentimeter).JoulesPerSquareMeter, MillijoulesPerSquareCentimeterTolerance); @@ -526,8 +596,8 @@ public void CompareToThrowsOnNull() [Theory] [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.JoulePerSquareMeter, true)] // Same value and unit. [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 2, IrradiationUnit.JoulePerSquareMeter, false)] // Different value. - [InlineData(2, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.JoulePerSquareCentimeter, false)] // Different value and unit. - [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.JoulePerSquareCentimeter, false)] // Different unit. + [InlineData(2, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.BtuPerSquareFoot, false)] // Different value and unit. + [InlineData(1, IrradiationUnit.JoulePerSquareMeter, 1, IrradiationUnit.BtuPerSquareFoot, false)] // Different unit. public void Equals_ReturnsTrue_IfValueAndUnitAreEqual(double valueA, IrradiationUnit unitA, double valueB, IrradiationUnit unitB, bool expectEqual) { var a = new Irradiation(valueA, unitA); @@ -615,9 +685,11 @@ public void ToString_ReturnsValueAndUnitAbbreviationInCurrentCulture() var prevCulture = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("en-US"); try { + Assert.Equal("1 Btu/ft²", new Irradiation(1, IrradiationUnit.BtuPerSquareFoot).ToString()); Assert.Equal("1 J/cm²", new Irradiation(1, IrradiationUnit.JoulePerSquareCentimeter).ToString()); Assert.Equal("1 J/m²", new Irradiation(1, IrradiationUnit.JoulePerSquareMeter).ToString()); Assert.Equal("1 J/mm²", new Irradiation(1, IrradiationUnit.JoulePerSquareMillimeter).ToString()); + Assert.Equal("1 kBtu/ft²", new Irradiation(1, IrradiationUnit.KilobtuPerSquareFoot).ToString()); Assert.Equal("1 kJ/m²", new Irradiation(1, IrradiationUnit.KilojoulePerSquareMeter).ToString()); Assert.Equal("1 kWh/m²", new Irradiation(1, IrradiationUnit.KilowattHourPerSquareMeter).ToString()); Assert.Equal("1 mJ/cm²", new Irradiation(1, IrradiationUnit.MillijoulePerSquareCentimeter).ToString()); @@ -635,9 +707,11 @@ public void ToString_WithSwedishCulture_ReturnsUnitAbbreviationForEnglishCulture // Chose this culture, because we don't currently have any abbreviations mapped for that culture and we expect the en-US to be used as fallback. var swedishCulture = CultureInfo.GetCultureInfo("sv-SE"); + Assert.Equal("1 Btu/ft²", new Irradiation(1, IrradiationUnit.BtuPerSquareFoot).ToString(swedishCulture)); Assert.Equal("1 J/cm²", new Irradiation(1, IrradiationUnit.JoulePerSquareCentimeter).ToString(swedishCulture)); Assert.Equal("1 J/m²", new Irradiation(1, IrradiationUnit.JoulePerSquareMeter).ToString(swedishCulture)); Assert.Equal("1 J/mm²", new Irradiation(1, IrradiationUnit.JoulePerSquareMillimeter).ToString(swedishCulture)); + Assert.Equal("1 kBtu/ft²", new Irradiation(1, IrradiationUnit.KilobtuPerSquareFoot).ToString(swedishCulture)); Assert.Equal("1 kJ/m²", new Irradiation(1, IrradiationUnit.KilojoulePerSquareMeter).ToString(swedishCulture)); Assert.Equal("1 kWh/m²", new Irradiation(1, IrradiationUnit.KilowattHourPerSquareMeter).ToString(swedishCulture)); Assert.Equal("1 mJ/cm²", new Irradiation(1, IrradiationUnit.MillijoulePerSquareCentimeter).ToString(swedishCulture)); diff --git a/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs b/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs index d30e2185da..0acb18ab2d 100644 --- a/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs +++ b/UnitsNet/GeneratedCode/Quantities/Irradiation.g.cs @@ -68,9 +68,11 @@ static Irradiation() Info = new QuantityInfo("Irradiation", new UnitInfo[] { + new UnitInfo(IrradiationUnit.BtuPerSquareFoot, "BtuPerSquareFoot", BaseUnits.Undefined, "Irradiation"), new UnitInfo(IrradiationUnit.JoulePerSquareCentimeter, "JoulesPerSquareCentimeter", BaseUnits.Undefined, "Irradiation"), new UnitInfo(IrradiationUnit.JoulePerSquareMeter, "JoulesPerSquareMeter", BaseUnits.Undefined, "Irradiation"), new UnitInfo(IrradiationUnit.JoulePerSquareMillimeter, "JoulesPerSquareMillimeter", BaseUnits.Undefined, "Irradiation"), + new UnitInfo(IrradiationUnit.KilobtuPerSquareFoot, "KilobtuPerSquareFoot", BaseUnits.Undefined, "Irradiation"), new UnitInfo(IrradiationUnit.KilojoulePerSquareMeter, "KilojoulesPerSquareMeter", BaseUnits.Undefined, "Irradiation"), new UnitInfo(IrradiationUnit.KilowattHourPerSquareMeter, "KilowattHoursPerSquareMeter", BaseUnits.Undefined, "Irradiation"), new UnitInfo(IrradiationUnit.MillijoulePerSquareCentimeter, "MillijoulesPerSquareCentimeter", BaseUnits.Undefined, "Irradiation"), @@ -178,6 +180,11 @@ public Irradiation(double value, UnitSystem unitSystem) #region Conversion Properties + /// + /// Gets a value of this quantity converted into + /// + public double BtuPerSquareFoot => As(IrradiationUnit.BtuPerSquareFoot); + /// /// Gets a value of this quantity converted into /// @@ -193,6 +200,11 @@ public Irradiation(double value, UnitSystem unitSystem) /// public double JoulesPerSquareMillimeter => As(IrradiationUnit.JoulePerSquareMillimeter); + /// + /// Gets a value of this quantity converted into + /// + public double KilobtuPerSquareFoot => As(IrradiationUnit.KilobtuPerSquareFoot); + /// /// Gets a value of this quantity converted into /// @@ -224,8 +236,10 @@ public Irradiation(double value, UnitSystem unitSystem) internal static void RegisterDefaultConversions(UnitConverter unitConverter) { // Register in unit converter: IrradiationUnit -> BaseUnit + unitConverter.SetConversionFunction(IrradiationUnit.BtuPerSquareFoot, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareCentimeter, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMillimeter, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); + unitConverter.SetConversionFunction(IrradiationUnit.KilobtuPerSquareFoot, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.KilojoulePerSquareMeter, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.KilowattHourPerSquareMeter, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.MillijoulePerSquareCentimeter, IrradiationUnit.JoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMeter)); @@ -235,8 +249,10 @@ internal static void RegisterDefaultConversions(UnitConverter unitConverter) unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.JoulePerSquareMeter, quantity => quantity); // Register in unit converter: BaseUnit -> IrradiationUnit + unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.BtuPerSquareFoot, quantity => quantity.ToUnit(IrradiationUnit.BtuPerSquareFoot)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.JoulePerSquareCentimeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareCentimeter)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.JoulePerSquareMillimeter, quantity => quantity.ToUnit(IrradiationUnit.JoulePerSquareMillimeter)); + unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.KilobtuPerSquareFoot, quantity => quantity.ToUnit(IrradiationUnit.KilobtuPerSquareFoot)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.KilojoulePerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.KilojoulePerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.KilowattHourPerSquareMeter, quantity => quantity.ToUnit(IrradiationUnit.KilowattHourPerSquareMeter)); unitConverter.SetConversionFunction(IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.MillijoulePerSquareCentimeter, quantity => quantity.ToUnit(IrradiationUnit.MillijoulePerSquareCentimeter)); @@ -268,6 +284,16 @@ public static string GetAbbreviation(IrradiationUnit unit, IFormatProvider? prov #region Static Factory Methods + /// + /// Creates a from . + /// + /// If value is NaN or Infinity. + public static Irradiation FromBtuPerSquareFoot(QuantityValue btupersquarefoot) + { + double value = (double) btupersquarefoot; + return new Irradiation(value, IrradiationUnit.BtuPerSquareFoot); + } + /// /// Creates a from . /// @@ -298,6 +324,16 @@ public static Irradiation FromJoulesPerSquareMillimeter(QuantityValue joulespers return new Irradiation(value, IrradiationUnit.JoulePerSquareMillimeter); } + /// + /// Creates a from . + /// + /// If value is NaN or Infinity. + public static Irradiation FromKilobtuPerSquareFoot(QuantityValue kilobtupersquarefoot) + { + double value = (double) kilobtupersquarefoot; + return new Irradiation(value, IrradiationUnit.KilobtuPerSquareFoot); + } + /// /// Creates a from . /// @@ -831,16 +867,20 @@ private bool TryToUnit(IrradiationUnit unit, [NotNullWhen(true)] out Irradiation Irradiation? convertedOrNull = (Unit, unit) switch { // IrradiationUnit -> BaseUnit + (IrradiationUnit.BtuPerSquareFoot, IrradiationUnit.JoulePerSquareMeter) => new Irradiation(_value * 11356.5267, IrradiationUnit.JoulePerSquareMeter), (IrradiationUnit.JoulePerSquareCentimeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation(_value * 1e4, IrradiationUnit.JoulePerSquareMeter), (IrradiationUnit.JoulePerSquareMillimeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation(_value * 1e6, IrradiationUnit.JoulePerSquareMeter), + (IrradiationUnit.KilobtuPerSquareFoot, IrradiationUnit.JoulePerSquareMeter) => new Irradiation((_value * 11356.5267) * 1e3d, IrradiationUnit.JoulePerSquareMeter), (IrradiationUnit.KilojoulePerSquareMeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation((_value) * 1e3d, IrradiationUnit.JoulePerSquareMeter), (IrradiationUnit.KilowattHourPerSquareMeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation((_value * 3600d) * 1e3d, IrradiationUnit.JoulePerSquareMeter), (IrradiationUnit.MillijoulePerSquareCentimeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation((_value * 1e4) * 1e-3d, IrradiationUnit.JoulePerSquareMeter), (IrradiationUnit.WattHourPerSquareMeter, IrradiationUnit.JoulePerSquareMeter) => new Irradiation(_value * 3600d, IrradiationUnit.JoulePerSquareMeter), // BaseUnit -> IrradiationUnit + (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.BtuPerSquareFoot) => new Irradiation(_value / 11356.5267, IrradiationUnit.BtuPerSquareFoot), (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.JoulePerSquareCentimeter) => new Irradiation(_value / 1e4, IrradiationUnit.JoulePerSquareCentimeter), (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.JoulePerSquareMillimeter) => new Irradiation(_value / 1e6, IrradiationUnit.JoulePerSquareMillimeter), + (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.KilobtuPerSquareFoot) => new Irradiation((_value / 11356.5267) / 1e3d, IrradiationUnit.KilobtuPerSquareFoot), (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.KilojoulePerSquareMeter) => new Irradiation((_value) / 1e3d, IrradiationUnit.KilojoulePerSquareMeter), (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.KilowattHourPerSquareMeter) => new Irradiation((_value / 3600d) / 1e3d, IrradiationUnit.KilowattHourPerSquareMeter), (IrradiationUnit.JoulePerSquareMeter, IrradiationUnit.MillijoulePerSquareCentimeter) => new Irradiation((_value / 1e4) / 1e-3d, IrradiationUnit.MillijoulePerSquareCentimeter), diff --git a/UnitsNet/GeneratedCode/Resources/Irradiation.restext b/UnitsNet/GeneratedCode/Resources/Irradiation.restext index b2a605bb57..6e38fa01b2 100644 --- a/UnitsNet/GeneratedCode/Resources/Irradiation.restext +++ b/UnitsNet/GeneratedCode/Resources/Irradiation.restext @@ -1,6 +1,8 @@ +BtuPerSquareFoot=Btu/ft² JoulesPerSquareCentimeter=J/cm² JoulesPerSquareMeter=J/m² JoulesPerSquareMillimeter=J/mm² +KilobtuPerSquareFoot=kBtu/ft² KilojoulesPerSquareMeter=kJ/m² KilowattHoursPerSquareMeter=kWh/m² MillijoulesPerSquareCentimeter=mJ/cm² diff --git a/UnitsNet/GeneratedCode/Units/IrradiationUnit.g.cs b/UnitsNet/GeneratedCode/Units/IrradiationUnit.g.cs index 449fdf2491..26d131063a 100644 --- a/UnitsNet/GeneratedCode/Units/IrradiationUnit.g.cs +++ b/UnitsNet/GeneratedCode/Units/IrradiationUnit.g.cs @@ -25,9 +25,11 @@ namespace UnitsNet.Units public enum IrradiationUnit { + BtuPerSquareFoot = 15, JoulePerSquareCentimeter = 1, JoulePerSquareMeter = 2, JoulePerSquareMillimeter = 3, + KilobtuPerSquareFoot = 9, KilojoulePerSquareMeter = 4, KilowattHourPerSquareMeter = 5, MillijoulePerSquareCentimeter = 6,